Javascript 谷歌地图api地理编码器不工作
我正在尝试使用地理编码器将邮政编码转换为lat和lng。我查看了GoogleMapsAPI示例并遵循了几个教程,但出于某种原因,对于lat和lng,它返回“”。这是我的密码Javascript 谷歌地图api地理编码器不工作,javascript,google-maps,Javascript,Google Maps,我正在尝试使用地理编码器将邮政编码转换为lat和lng。我查看了GoogleMapsAPI示例并遵循了几个教程,但出于某种原因,对于lat和lng,它返回“”。这是我的密码 (功能(窗口、谷歌、地址){ var geocoder=new google.maps.geocoder(); var lat=“”; var lng=“”; 地理编码({ “地址”:地址 },功能(结果、状态){ var测试=结果[0]; lat=results[0]。geometry.location.lat();//
(功能(窗口、谷歌、地址){
var geocoder=new google.maps.geocoder();
var lat=“”;
var lng=“”;
地理编码({
“地址”:地址
},功能(结果、状态){
var测试=结果[0];
lat=results[0]。geometry.location.lat();//lat仍然等于“”
lng=results[0]。geometry.location.lng();//lng仍然等于“”
});
变量选项={
中心:{
拉特:拉特,
液化天然气:液化天然气
},
缩放:5
},
element=document.getElementById('map-canvas')
var map=new google.maps.map(元素,选项)
}(window,window.google,98107))代码>
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}
geocode()是一个异步函数,您需要等待其回调以获得实际结果
在代码中,在返回纬度和经度值之前,在回调外部创建中心对象
请尝试以下操作:
geocoder.geocode({
'address': address
}, function(results, status) {
var test = results[0];
var options = {
center: {
lat: results[0].geometry.location.lat(),
lng: results[0].geometry.location.lng()
},
zoom: 5
}
});
地理编码器是异步的。您需要在回调函数中返回的数据存在的时间/位置使用该数据
(function(window, google, address) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
'address': address
}, function(results, status) {
var options = {
center: results[0].geometry.location,
zoom: 5
},
element = document.getElementById('map-canvas')
var map = new google.maps.Map(element, options)
});
}(window, window.google, "98107"));
发布代码的另一个问题是传递到地理编码器的地址必须是字符串(因此“98107”,而不是98107),如果不是,API将生成错误:InvalidValueError:在属性地址中:不是字符串
(功能(窗口、谷歌、地址){
var geocoder=new google.maps.geocoder();
地理编码({
“地址”:地址
},功能(结果、状态){
变量选项={
中心:结果[0].geometry.location,
缩放:5
},
element=document.getElementById('map-canvas')
var map=new google.maps.map(元素,选项)
});
}(window,window.google,“98107”)代码>
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}
我尝试了上面的代码。对于lat和LNGJ,仍然得到“”必须确定的是,您是否在回调函数本身中检查这些值?