谷歌地理编码服务

时间:2011-06-21 15:49:00

标签: google-maps google-maps-api-3 google-geocoder

我正在尝试使用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是全局变量。这段代码有什么问题吗? 非常感谢。

1 个答案:

答案 0 :(得分:0)

您需要将地图创建代码移动到geocode回调中(或者创建具有默认位置的地图,然后在回调中重新定位地图)。

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

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