我正在使用Geocoding API转换和寻址纬度和经度坐标值。我确实收到了结果,但 lat 和 long 为空。其他SO帖子提到Geocoder请求是异步的,Google只是不能足够快地返回数据。如果这是问题,我不明白如何解决这个问题。
{{1}}
即使我使用了一个众所周知的地址,我仍然没有拉或长。
结果对象:
这真的是问题还是我正在使用的代码有问题?我该如何解决这个问题?
答案 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),你可以看到结果。