我正在尝试使用Google地理编码服务来获取用户输入的城市坐标。但是看起来初始化LatLng()对象(latlngCity)时会出现问题,并且地图不会显示。代码如下:
var map;
var latlngCity;
function initialize() {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': 'Lisbon, PT'}, function(results, status) {
if(status == google.maps.GeocoderStatus.OK) {
latlngCity = results[0].geometry.location;
}
});
var myMapOptions = {
zoom: 8,
center: latlngCity,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myMapOptions);
}
为简单起见,我自己插入地址城市字符串。变量map和latlngCity是全局变量。这段代码有什么问题吗? 非常感谢。
答案 0 :(得分:0)
您需要将地图创建代码移动到geocode
回调中(或者创建具有默认位置的地图,然后在回调中重新定位地图)。
在您的代码中,latlngCity
在创建地图时未定义,而geocode
仍在执行(异步)。
希望这是有道理的。否则我会提供一些代码。让我知道。