谷歌地图地理编码APi没有返回lat和long

时间:2016-05-21 00:33:58

标签: javascript google-maps google-geocoder google-geocoding-api

我正在使用Geocoding API转换和寻址纬度和经度坐标值。我确实收到了结果,但 lat long 为空。其他SO帖子提到Geocoder请求是异步的,Google只是不能足够快地返回数据。如果这是问题,我不明白如何解决这个问题。

{{1}}

即使我使用了一个众所周知的地址,我仍然没有拉或长。

结果对象:

enter image description here

这真的是问题还是我正在使用的代码有问题?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

结束使用它来解决问题:

var request = new XMLHttpRequest();
request.open( 'GET', 'https://maps.googleapis.com/maps/api/geocode/json?address=' + address, false);
request.send( null );

虽然,我必须设置false才能使请求保持同步。似乎这是/将被弃用但是为了我的目的它应该没问题。我现在可以通过以下方式解析json:

var request = new XMLHttpRequest();
request.open( 'GET', 'https://maps.googleapis.com/maps/api/geocode/json?address=' + address, false);
request.send( null );

我认为这很好。希望Geocoder文档记录异步问题并提供更好的解决方案。

答案 1 :(得分:1)

很久以前就有人问过这个问题,但您的代码给了我解决问题的提示。 API 调用返回的响应只有函数 lat 和函数 lgt,这就是没有坐标的原因。您必须调用问题中指定的函数

let ytShortVideoLink = "https://youtube.com/shorts/2xL2WlQM7Nc"
print("Video ID:",ytShortVideoLink. extractYoutubeId())
//Output: 
Video ID: 2xL2WlQM7Nc

如果你使用console.log(coords),你可以看到结果。