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

时间:2016-01-19 13:16:02

标签: google-maps geocode

我正在尝试使用谷歌地图创建基于城市的坐标,这里是我现在的例子,我总是得到错误?

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),

    };

1 个答案:

答案 0 :(得分:10)

地理编码器是异步的。当/可用时,您需要在回调函数中使用返回的数据。

相关问题:Using Address Instead Of Longitude And Latitude With Google Maps API

proof of concept fiddle

代码段



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>
&#13;
&#13;
&#13;