根据城市名称获取谷歌地图坐标

7

我正在尝试使用谷歌地图基于城市创建坐标。这是目前我的示例,但始终出现错误?

var address = 'Zurich, Ch';

var geocoder = new google.maps.Geocoder();

geocoder.geocode({
  'address': address
}, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    var Lat = results[0].geometry.location.lat();
    var Lng = results[0].geometry.location.lng();
  } else {
    alert("Something got wrong " + status);
  }
});

var myOptions = {
  zoom: 11,
  center: new google.maps.LatLng(Lat, Lng),
};

你得到了什么错误? - geocodezip
1个回答

10
地理编码器是异步的。当/在数据可用时,您需要在回调函数中使用返回的数据。相关问题:使用地址而不是经纬度与Google Maps API一起使用概念验证代码段

function initialize() {
  var address = 'Zurich, Ch';

  var geocoder = new google.maps.Geocoder();
  geocoder.geocode({
    'address': address
  }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      var Lat = results[0].geometry.location.lat();
      var Lng = results[0].geometry.location.lng();
      var myOptions = {
        zoom: 11,
        center: new google.maps.LatLng(Lat, Lng)
      };
      var map = new google.maps.Map(
        document.getElementById("map_canvas"), myOptions);
    } else {
      alert("Something got wrong " + status);
    }
  });
}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接