Google maps 谷歌地理编码器服务

Google maps 谷歌地理编码器服务,google-maps,google-maps-api-3,google-geocoder,Google Maps,Google Maps Api 3,Google Geocoder,我正在尝试使用谷歌地理编码服务来获取用户输入的城市坐标。但是,初始化LatLng()对象(latlngCity)时似乎出现了一些问题,并且映射不会显示。代码如下: var映射; var latlngCity; 函数初始化(){ var geocoder=new google.maps.geocoder(); geocoder.geocode({'address':'Lisbon,PT'},函数(结果,状态){ if(status==google.maps.GeocoderStatus.OK){

我正在尝试使用谷歌地理编码服务来获取用户输入的城市坐标。但是,初始化LatLng()对象(latlngCity)时似乎出现了一些问题,并且映射不会显示。代码如下:

var映射;
var latlngCity;
函数初始化(){
var geocoder=new google.maps.geocoder();
geocoder.geocode({'address':'Lisbon,PT'},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
latlngCity=results[0]。geometry.location;
}
});
var myMapOptions={
缩放:8,
中心:latlngCity,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“map_canvas”),
myMapOptions);
}
为简单起见,我自己插入地址城市字符串。变量map和latlngCity是全局变量。这个代码有什么问题吗?
非常感谢。

您需要将地图创建代码移动到
geocode
回调中(或者使用一些默认位置创建地图,然后在回调中重新居中)

在代码中,
latlngCity
在地图创建时未定义,而
geocode
仍在执行(异步)


希望这是有意义的。否则我将提供一些代码。让我知道。

谢谢您的回复。我尝试在回调中创建映射,结果成功了。地理编码器现在工作正常。但是,我现在无法在地图上创建标记。我在回调中声明了没有“var”的映射。它应该是全球性的,对吗?但是当我在标记选项中定义地图时,它永远不会显示。你在哪里创建标记?很可能是完全相同的问题-在创建地图后,尝试在
geocode
回调中设置标记。就是这样!我必须在回调中创建标记。再次感谢你。