2015-01-29 1 views
1

Как я могу получить formatted_address в API Карт Google с типом окрестности? Я использую Карты Google для обратного геокодирования, но, к сожалению, ближайший адрес к моему местоположению - formatted_address с типом neighborhood. Мне очень сложно разбирать массив JSON, так как он содержит много контента.Получение formatted_address с типом окрестности в Google Maps api - Обратное геокодирование

Вот пример JSON, который я получил от Google Maps. https://gist.github.com/anonymous/8d5250cfc37a8cef9ab2

, когда я пытаюсь использовать это:

var geocoder = new google.maps.Geocoder(); 

       var point = new google.maps.LatLng(localStorage.latitude, localStorage.longitude); 
       geocoder.geocode({ 'latLng': point }, function (results, status) { 
       if (status !== google.maps.GeocoderStatus.OK) { 
        alert(JSON.stringify(status)); 
       } 
       // This is checking to see if the Geoeode Status is OK before proceeding 
       if (status == google.maps.GeocoderStatus.OK) { 
        console.log(results); 
        var address = (results[0].formatted_address); 
        alert(JSON.stringify(address)); 
       } 
       }); 

Это не дает мне ближайший адрес. Примечание. Данные по этому значению варьируются в зависимости от широты/долготы, но когда я проверяю другой адрес, только formatted_address с типом neighborhood дает мне ближайший адрес от Lat и Lang.

+0

Каких библиотеки Javascript вы используете? JQuery? Нижнее подчеркивание? Вероятно, вы должны удалить тег Android – darnmason

+0

Angularjs. Это было предложено путем stackoverflow. И я использую cordova для этого, чтобы работать как приложение для Android. – user3569641

+0

Угловая, вероятно, предоставляет отличные методы для проверки результатов, если 'results [i] .types' содержит' "окрестности", а затем использовать 'results [i] .formatted_address'. Конечно, это можно было бы сделать и на простом Javascript. Вам понадобится откат в случае, если результаты не содержат адрес окрестности типа. – darnmason

ответ

2

My Javascript является Каболкой, но я предполагаю, что это, как я хотел бы сделать это:

function getAddress(results) { 
    if(results && results.length) { 
     for (var i=0; i<results.length; i++) { 
      if (results[i].types.indexOf('neighborhood') != -1) { 
       return results[i].formatted_address; 
      } 
     } 
     return results[0].formatted_address; 
    } 
    return ''; 
} 
+0

Спасибо. Я попробую это позже. Сейчас я использую мобильные устройства. – user3569641

+0

Работает :-) – user3569641

Смежные вопросы