我正在使用这个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)。
有没有办法解决此代码的缩放问题?我尝试编辑所有大小但是我不熟悉谷歌地图编码。
谢谢。
答案 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。