Получить адреса списка координат - PullRequest
0 голосов
/ 21 ноября 2018

Я создаю угловое приложение, в котором у меня есть список мест, поступающих из пожарного магазина, следующим образом:

places =[
          {"id":1, 
           "name": place 1, 
           "latitude": 40.713484, 
           "longitude": -74.006739},
          {"id":2, 
           "name": place 2, 
           "latitude": 40.712801, 
           "longitude": 74.004936},
       .....]

И этот список насчитывает около 1000 элементов, мне нужно использовать функцию, чтобы получить адрескаждого места и добавьте в него элемент, затем обновите базу данных пожарного магазина, указав адрес элемента.

Я использую API карт Google для получения адреса каждого элемента.

Каков наилучший способЗацикливание списка и для каждого элемента я хочу получить адрес и обновить базу данных до следующего элемента.

Как выполнять последовательные функции в forEach?

Заранее спасибо

1 Ответ

0 голосов
/ 21 ноября 2018

Используйте API геокодирования карт Google, который должен дать вам адрес

this.http.get('https://maps.googleapis.com/maps/api/geocode/json?latlng=' + lat + ',' + lng + '&key=your_api_key')
   .subscribe((getplaceData) => {

          let address = { address: getplaceData['results'][0].formatted_address, coords: data};

        }, err => {
          console.log(JSON.stringify(err));
        });

Поскольку у вас есть массив координат, я буду использовать Rxjs forkJoin

const arrayOfCalls = [];
place.forEach(pl => {
arrayOfCalls.push(
 'https://maps.googleapis.com/maps/api/geocode/json?latlng=' + pl.lat + ',' + pl.lng + '&key=your_api_key'
 )
})

forkJoin(ArrayOfCalls).subscribe((data)=> {
  console.log(data)
})

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...