Google Maps - использование геокодера для получения длинных / лат с javascript - PullRequest
8 голосов
/ 10 сентября 2010

Я пытаюсь получить значения долготы и широты из API карт Google с адресом, но, похоже, не возвращает никакого значения Есть ли проблема с моим синтаксисом?

var point = GClientGeocoder.getLatLng('1600 Pennsylvania Avenue NW Washington, DC 20500');
alert(point);

Ответы [ 3 ]

38 голосов
/ 10 сентября 2010

Кажется, вы используете v2 Google Maps;если вы заинтересованы в использовании v3 (поскольку Google официально устарел в версии 2), вы можете сделать что-то вроде этого:

var mygc = new google.maps.Geocoder();
mygc.geocode({'address' : '1600 Pennsylvania Avenue NW Washington, DC 20500'}, function(results, status){
    console.log( "latitude : " + results[0].geometry.location.lat() );
    console.log( "longitude : " + results[0].geometry.location.lng() );
});

Это похоже на другие примеры, кроме:

  • Вы вызываете new google.maps.Geocoder () вместо GClientGeocoder ()
  • Вы передаете объект со свойством address вместо самой строки
  • Результатом является объект JSON, что означает, что вам нужно получить доступ к широте / ширине немного по-другому

Документы API Google содержат больше деталей для v3.Ура!

8 голосов
/ 10 сентября 2010

Это работает (при условии, что у вас есть правильный ключ API, с учетом ограничения на 2500 запросов в день):

address_string = '1600 Pennsylvania Avenue NW Washington, DC 20500';
geocoder = new GClientGeocoder();
geocoder.getLatLng(
    address_string,
    function(point) {
        if (point !== null) {
            alert(point); // or do whatever else with it
        } else {
            // error - not found, over limit, etc.
        }
    }
);

Вы, кажется, вызываете функцию GClientGeocoder, где вам нужносоздайте new GClientGeocoder() и вызовите его функцию.

1 голос
/ 10 сентября 2010

Попробуйте как:

geocoder = new GClientGeocoder();
point = geocoder.getLatLng(address)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...