Jsu*_*alv 5 javascript google-maps google-geocoder google-geocoding-api
我正在利用地理编码 API 来转换和寻址纬度和经度坐标值。我确实收到了结果,但纬度和经度都是空的。其他 SO 帖子提到地理编码器请求是异步的,而 Google 只是返回数据的速度不够快。如果这是问题所在,我不明白如何修复我的代码。
var coords = [];
var address = '1600 Pennsylvania Ave NW, Washington, DC 20500';
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': address}, function( results, status ) {
if (status === google.maps.GeocoderStatus.OK) {
coords[0] = results[0].geometry.location.lat();
coords[1] = results[0].geometry.location.lng();
}
else {
coords = 'Could not retrieve coordinates for: ' + address;
}
});
return coords;
Run Code Online (Sandbox Code Playgroud)
即使我使用众所周知的地址,我仍然得不到纬度或经度。
结果对象:
这真的是问题所在还是我使用的代码有问题?我怎样才能解决这个问题?
最终使用这个来解决问题:
var request = new XMLHttpRequest();
request.open( 'GET', 'https://maps.googleapis.com/maps/api/geocode/json?address=' + address, false);
request.send( null );
Run Code Online (Sandbox Code Playgroud)
不过,我必须设置 false 以保持请求同步。似乎这已被弃用,但就我的目的而言,它应该没问题。我现在可以通过执行以下操作来解析 json:
var request = new XMLHttpRequest();
request.open( 'GET', 'https://maps.googleapis.com/maps/api/geocode/json?address=' + address, false);
request.send( null );
Run Code Online (Sandbox Code Playgroud)
我认为这很好。只是希望地理编码器文档注意到异步问题并提供更好的解决方案。
| 归档时间: |
|
| 查看次数: |
5502 次 |
| 最近记录: |