0

我正在尝试使用谷歌地理编码器服务来获取用户输入的城市坐标。但是,初始化 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 是全局变量。这段代码有什么问题吗?非常感谢。

4

1 回答 1

0

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

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

希望这是有道理的。否则我会提供一些代码。让我知道。

于 2011-06-21T16:17:16.340 回答