我正试图从谷歌地图地理编码api获取LatLng。我的代码在下面,地址值是“纽约,纽约”
$.ajax({
url: 'http://maps.googleapis.com/maps/api/geocode/json',
data: {
sensor: false,
address: address
},
success: function (data) {
alert(data)
}
});
但我没有得到警告的任何价值。
感谢您的帮助。
答案 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)
}
});