Esta fue mi solucion, ya que el objeto que te retorna la api de Google Maps las posiciones varian del array ‘addressComponents’, habria que ver en el array de ‘types’ si cuenta con el que necesitamos.
Aca dejo el codigo que me funciono a mi
html
<h3>Datos de direccion</h3>
<div class="well">
<form>
<label for="">Buscar Negocio en Google</label>
<input input="text" class="form-control" [formControl]="searchField">
</form>
<ul class="list-group">
<li *ngFor="let result of results$ | async" class="list-group-item" (click)="llenarDatosDireccion(result)">
{{result.formatted_address}}
</li>
</ul>
</div>
<label>Calle y Número</label>
<input type="text" class="form-control" [(ngModel)]="lugar.calle">
<br>
<label>Ciudad</label>
<input type="text" class="form-control" [(ngModel)]="lugar.ciudad">
<br>
<label>Pais</label>
<input type="text" class="form-control" [(ngModel)]="lugar.pais">
ts
llenarDatosDireccion(direccion: any) {
let calle = direccion.address_components.find(element => element.types[0] === 'route') || {long_name: ''};
let numero = direccion.address_components.find(element => element.types[0] === 'street_number') || {long_name: ''};
let ciudad = direccion.address_components.find(element => element.types[0] === 'administrative_area_level_2') || {long_name: ''};
let pais = direccion.address_components.find(element => element.types[0] === 'country') || {long_name: ''};
this.lugar.calle = `${calle.long_name} ${numero.long_name}`;
this.lugar.ciudad = ciudad.long_name;
this.lugar.pais = pais.long_name;
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.