如何使用jquery ajax调用google map geocode服务

时间:2011-03-04 08:26:52

标签: jquery ajax google-maps geocode

我正试图从谷歌地图地理编码api获取LatLng。我的代码在下面,地址值是“纽约,纽约”

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

但我没有得到警告的任何价值。

感谢您的帮助。

6 个答案:

答案 0 :(得分:13)

您需要就rules

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

修改

我多么愚蠢,早上不应该在stackoverflow上!问题是跨域请求。出于安全原因,这是不允许的。请参阅:How to make cross-domain AJAX calls to Google Maps API?

请使用Google自己的Geocoding client

答案 1 :(得分:9)

没有必要使用jquery,谷歌地图javascript 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
        });
    }
});

答案 2 :(得分:2)

如果有人在这个主题上寻求帮助,我就是这样做的。请注意,这是反向查找,但正向查找应该以相同的方式工作:

`

    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;
      });
     }`

答案 3 :(得分:1)

V3地理编码webservice不支持JSONP请求,但它仍可在V2中使用

请参阅:http://blog.futtta.be/2010/04/09/no-more-jsonp-for-google-geocoding-webservice/

答案 4 :(得分:1)

这就是我做的。 Geocoder似乎正在创建它自己的回调。

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();
    }
});

答案 5 :(得分:0)

或将dataType指定为jsonp?

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