[英]Google Maps problem with Geocoder
重点是从 JSON 文件中指出标记,但是如果当前的 json 没有任何 lat 和 lng 它应该计算它,但它不起作用
//For example when
item.county = 'Orust'
//and
item.region = 'Bohuslän'
这是为什么?
if(lat == null)
{
geocoder.geocode({ 'address': item.county+', '+item.region}, function(result, status) {
if (status == google.maps.GeocoderStatus.OK) {
if(result[0])
{
latlng = result[0].geometry.location
}
}
});
我错过了什么吗?
首先检查回调内部是否按预期工作。 为此,请更改:
latlng = result[0].geometry.location;
对此:
console.log(result[0].geometry.location);
(您也可以在latlng
分配上方添加console.log
而不是更改它。实际上,这可能更好。)
如果 JavaScript 控制台中的结果消息看起来像一个latlng
object,那么问题可能是latlng
latlng
回调不同。
如果 JavaScript 控制台中的结果消息看起来不像是latlng
object,那么问题出在回调本身。 通过将其放在上面最后一个console.log()
的位置来检查是否得到任何结果:
console.log(result);
如果这些console.log
命令从未触发,并且 JavaScript 控制台中没有出现任何内容,则从 geocoder.geocoder geocoder.geocoder()
返回的状态不OK
,您需要在回调中添加一些错误处理以查看发生了什么。
对地理编码器的请求异步运行。 您无法从外部代码访问在回调内部分配的变量。 实际上你可以,但它是未定义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.