好的,我已经在jQuery应用程序中设置Google地图。 (V3)。我可以整天地理地图代码。在Javascript中了解地理编码
所以,我认为我会很聪明,并将实际的地理编码功能移到一个函数中。
这里是我使用的功能:
function geocode(address) { var self = this; geocoder.geocode({ 'address': address }, function(results, status) { console.log(status); if (status == google.maps.GeocoderStatus.OK) { return results[0].geometry.location; } else { return null; } }); return "WTF?"; }
的“跆拳道”是一个笑话,你会看到一个时刻。
现在,后来在我的代码,我尝试调用函数像这样:
var start_latlng; start_latlng = geocode(start_address); console.log(start_latlng);
我得到控制台是:
WTF? OK
公告的“跆拳道”是BEFORE即使我在该功能中打印“确定”,“确定”。 (console.log(状态))
我的猜测是因为地理编码需要一点时间才能返回并且函数在返回第一个地理编码值之前继续。
有没有人有任何建议,如何改善这个,使我的“start_latlng”包含预期值?
感谢您的指点。
*编辑**
这里是我落得这样做。
我调用该函数像这样:
geocode(start_address, function(data) { start_latlng = data; console.log(start_latlng); });
这里是新的功能(没有完成,但你的想法)
function geocode(address, callback) { geocoder.geocode({ 'address': address }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { callback(results[0].geometry.location); } else { callback("Error"); } }); }
就像一个魅力。 :-)
感谢您的提示,并帮助我认为更好。