感谢作者,我正在使用这个website的谷歌 Map 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>
$desc');\n");
}
?>
center = bounds.getCenter();
map.fitBounds(bounds);
但是我面临调整缩放级别的问题,它设置为14,但无论我改变什么值,它都保持不变 .
我从下面的评论中读到,有人建议删除这一行:map.fitBounds(bounds);
我删除了它,但 Map 的中心移动到其他位置,我认为是(0,0) .
有没有办法解决此代码的缩放问题?我试图编辑所有大小虽然..但我不熟悉谷歌 Map 编码 .
谢谢 .
4 回答
替换这个:
有:
bounds.getCenter()
将返回由addMarker()扩展的边界的计算中心看起来您在创建 Map 时设置缩放级别,但随后
map.fitBounds()
更改缩放级别以包含边界 .使用fitBounds设置视口后尝试设置缩放级别 .
在这里,您可以选择您想要的 Map 中心:
center: new google.maps.LatLng(0, 0),
Ofc,把一些其他数字代替0,0 - 这些是纬度和经度 . 然后你不需要合适的界限 - 删除它 .
并缩放:14将工作(和任何其他数字) . 它现在不工作,因为它采取了界限,并试图适应这些界限内的所有区域,并使用MAX zoom可能,以显示整个区域 .
在map.fitBounds(bounds)语句之后添加以下语句
map.setZoom(zoom:number)
这会将缩放级别设置为所需的缩放级别 .
Analyzing your code:
您正在使用缩放级别14和中心(0,0)初始化 Map . map.fitBounds(bounds); 命令的重要性在于它调整 Map 的边界以显示所有添加的标记,这些标记反过来将改变缩放级别 . 如果删除此语句,则中心将保持为(0,0)并且缩放级别为14.如果要设置 Map 的中心,请使用以下语句
map.setCenter(latlng:LatLng)
谢谢B.J.