如何使用google - 此页面未能正确加载google地图请参阅javascript控制台了解技术详情



Google Maps v3-如何在初始化时使用地址居中? (1)

使用Google Maps API v3,有没有办法在初始化时设置地图的中心? 我有一个解决方法使用此代码:

var geocoder;
  var map;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    codeAddress('germany');
  }

  function codeAddress(address) {
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
      }
    });
  }

唯一的问题是,当它初始化时,它将它中心化为“latlng”一瞬间。 我无法弄清楚如何在“myOptions”中设置中心。 我虽然可以从codeAddress函数返回“results [0] .geometry.location”并将其传递给myOptions,但这不起作用。

谢谢你的帮助。

更新由于我无法完全删除“中心”,我想知道是否有办法将地址传递给选项。

来自Google API:

要初始化Map,我们首先创建一个Map选项对象以包含地图初始化变量。 该对象未构造; 相反,它被创建为对象文字。 每个地图都有两个必需的选项: 中心缩放


一个简单的解决方案可能是在codeAddress函数中初始化地图:

var geocoder, map;

function codeAddress(address) {
    geocoder = new google.maps.Geocoder();
    geocoder.geocode({
        'address': address
    }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var myOptions = {
                zoom: 8,
                center: results[0].geometry.location,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            }
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

            var marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
            });
        }
    });
}

这应该可以解决问题。





google-maps-api-3