谷歌地图缩放级别


Google map zoom level

感谢作者,我正在使用这个网站上的谷歌地图api。

以下是部分代码:

 function initMap() {
 map = new google.maps.Map(document.getElementById("map"), {
 center: new google.maps.LatLng(0, 0),
 zoom: 14,
 mapTypeId: google.maps.MapTypeId.ROADMAP,
 mapTypeControl: false,
 mapTypeControlOptions: {
 style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
 },
 navigationControl: true,
 navigationControlOptions: {
 style: google.maps.NavigationControlStyle.SMALL
 }
 });
  <?
 $query = mysql_query("SELECT * FROM markers WHERE ID='1'");
 while ($row = mysql_fetch_array($query)){
 $name=$row['name'];
 $lat=$row['lat'];
 $lon=$row['lng'];
 $desc=$row['address'];
  echo ("addMarker($lat, $lon,'<b>$name</b><br/>$desc');'n");
 }
 ?>
 center = bounds.getCenter();
 map.fitBounds(bounds);

然而,我面临着调整缩放级别的问题,它设置为14,但无论我更改了什么值,它都保持不变。

我从下面的评论中看到,有人建议删除这一行:map.fitBounds(边界);

我把它移走了,但地图的中心移到了另一个位置,我认为是(0,0)。

有什么方法可以解决这个代码的缩放问题吗?不过我试着编辑了所有的尺寸。。但我不熟悉谷歌地图编码。

谢谢。

替换此:

center = bounds.getCenter();
 map.fitBounds(bounds);

带有:

map.setCenter(bounds.getCenter());

bounds.getCenter()将返回addMarker()扩展的边界的计算中心

创建地图时,您似乎正在设置缩放级别,但map.fitBounds()会更改缩放级别以包含边界。

在使用fitBounds设置视口后,尝试设置缩放级别。

...
map.fitBounds(bounds);
map.setZoom(14);

在这里,您可以选择地图的中心位置:center: new google.maps.LatLng(0, 0),

Ofc,用一些其他数字代替0,0——这些是纬度和经度。然后你就不需要合适的边界了-删除它。

缩放:14将起作用(以及任何其他数字)。它现在不起作用,因为它占用了边界,并试图将所有区域都放在边界内,并尽可能使用最大缩放来显示整个区域。

在map.fitBounds(bounds)语句之后添加以下语句

地图.设置缩放(缩放:数字)

这会将缩放级别设置为所需的缩放级别。

分析代码:

您正在使用缩放级别14和中心(0,0)初始化地图。map.fitBounds(bounds)的显著性命令是调整地图的边界以显示所有添加的标记,这反过来又会改变缩放级别。如果删除此语句,则中心将保持为(0,0),缩放级别为14。如果您想设置地图的中心,请使用以下语句

map.setCenter(latlng:latlng)

谢谢B.J.