Как позвонить в службу геокодирования карты Google с помощью jquery ajax - PullRequest
14 голосов
/ 04 марта 2011

Я пытаюсь получить LatLng от Google Map Geocode API. мой код ниже со значениями адреса "Нью-Йорк, Нью-Йорк"

$.ajax({
    url: 'http://maps.googleapis.com/maps/api/geocode/json',
    data: {
        sensor: false,
        address: address
    },
    success: function (data) {
        alert(data)
    }
});

Но я не получаю никаких значений в оповещении.

Спасибо за любую помощь.

Ответы [ 6 ]

14 голосов
/ 04 марта 2011

Вам необходимо будет связаться с API по поводу правил .

$.getJSON( {
    url  : 'https://maps.googleapis.com/maps/api/geocode/json',
    data : {
        sensor  : false,
        address : address
    },
    success : function( data, textStatus ) {
        console.log( textStatus, data );
    }
} );

Edit:

Как глупо с моей стороны, не должно быть утром на переполнении стека! Проблема в междоменном запросе. По соображениям безопасности это не разрешено. См .: Как совершать междоменные вызовы AJAX в API Карт Google?

Пожалуйста, используйте собственный клиент Geocoding от Google .

9 голосов
/ 24 июля 2015

нет необходимости использовать jquery, Google Maps API v3 имеет встроенные функции, которые упрощают использование API.

https://developers.google.com/maps/documentation/javascript/geocoding https://developers.google.com/maps/documentation/geocoding/intro

var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
    }
});
3 голосов
/ 22 марта 2015

Если кто-то ищет помощь по этой теме, я так и сделал. Обратите внимание, что это обратный поиск, но прямой поиск должен работать так же:

`

    function getLocation() {
var latdegrees=40.2298;
var londegrees=-41.88754;
     var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + latdegrees + "," + londegrees + "YOUR API KEY";
    $.getJSON(url,function (data, textStatus) {
           var streetaddress=data.results[0].formatted_address;
          return streetaddress;
      });
     }`
1 голос
/ 20 января 2015

Вот как я это сделал. Геокодер, похоже, создает свой собственный обратный вызов.

geo.geocode({ 'address': myaddress }, function(data, status) {
    if (status == google.maps.GeocoderStatus.OK) { 
        var myylocation = data[0].geometry.location;
        lat = myylocation.lat();
        lng = myylocation.lng();
    }
});
1 голос
/ 27 декабря 2012

Веб-сервис геокодирования V3 не поддерживает запросы JSONP, но все еще доступен в V2

См .: http://blog.futtta.be/2010/04/09/no-more-jsonp-for-google-geocoding-webservice/

0 голосов
/ 23 ноября 2012

или указать dataType для jsonp?

$.ajax({
    url: 'http://maps.googleapis.com/maps/api/geocode/json',
    data: {
        sensor: false,
        address: address
    },
    dataType:'jsonp',
    success: function (data) {
        alert(data)
    }
});
...