Google地图不会平移到我的地图中心

时间:2013-08-16 08:53:35

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

我有一张我已设置中心的地图 - 当我要求地图返回中心时,它会返回相同的值。然而,地图正在放大我目前唯一的引脚。

无论引脚在哪里,我都希望地图缩小到相同的位置。

上下文:地图列出了某个国家/地区的位置。目前只有一个,但我希望地图缩小以显示整个国家。

2 个答案:

答案 0 :(得分:2)

您无法在google地图的setCenter中指定国家/地区,因为它始终专注于特定坐标。 如果您希望缩放以国家为中心,您将拥有一个与fitBounds和LatLngBounds一起使用的国家边界数据库(作为坐标)。

以下是使用边界的示例代码,其中latLngList应该是从国家/地区加载的坐标

var LatLngList = new Array (new google.maps.LatLng (52.537,-2.061), new google.maps.LatLng (52.564,-2.017));
//  Create a new viewpoint bound
var bounds = new google.maps.LatLngBounds ();
//  Go through each...
for (var i = 0, LtLgLen = LatLngList.length; i < LtLgLen; i++) {
  //  And increase the bounds to take this point
  bounds.extend (LatLngList[i]);
}
//  Fit these bounds to the map
map.fitBounds (bounds);

参考:Zoom to Fit all markers

答案 1 :(得分:1)

由于你没有共享任何代码,我猜你正在做这样的事情。

var bounds = new google.maps.LatLngBounds ();
bounds.extend (LATLNG);
map.fitBounds(bounds);

这会将所有点添加到边界,并确保缩放级别适合所有点。在你的情况下,它会放大你所拥有的唯一点。

如果你想放大一个国家但没有坐标,你可以使用地理编码来获得它们;

var address = "India"; // THE COUNTRY / ADDRESS WILL COME HERE
var geocoder = new google.maps.Geocoder(); 
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        map.fitBounds(results[0].geometry.viewport);results[0].geometry.location,map: map,icon:getGoogleIcon('purple')});
      } else {
        alert(address + " not found");
      }
    });

它会将界限设置为您提供的地址。