谷歌地图缩放级别

时间:2012-02-29 22:38:31

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

我正在使用这个website的谷歌地图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)。

有没有办法解决此代码的缩放问题?我尝试编辑所有大小但是我不熟悉谷歌地图编码。

谢谢。

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

替换它:

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

使用:

map.setCenter(bounds.getCenter());

bounds.getCenter()将返回由addMarker()

扩展的边界的计算中心

答案 2 :(得分:1)

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

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

缩放:14将起作用(以及任何其他数字)。它现在不起作用,因为它占据了界限,并试图适应这些界限内的所有区域,并使用MAX变焦,以显示整个区域。

答案 3 :(得分:1)

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

map.setZoom(缩放:数字)

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

分析您的代码:

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

map.setCenter(latlng:LatLng)

由于 B.J。