我有一张带有我设置的中心的地图——当我要求地图返回中心时,它返回相同的值。然而,地图正在放大我目前唯一的图钉。
无论图钉在哪里,我都希望地图缩小到同一个地方。
背景:地图列出了一个国家的位置。目前只有一个,但我希望地图缩小以显示整个国家。
我有一张带有我设置的中心的地图——当我要求地图返回中心时,它返回相同的值。然而,地图正在放大我目前唯一的图钉。
无论图钉在哪里,我都希望地图缩小到同一个地方。
背景:地图列出了一个国家的位置。目前只有一个,但我希望地图缩小以显示整个国家。
您不能在谷歌地图的 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);
参考:缩放以适合所有标记
由于您没有共享任何代码,我猜您正在做这样的事情。
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");
}
});
它将为您提供的地址设置边界。