繁体   English   中英

地理编码器的谷歌地图问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM