感谢作者,我正在使用这个网站上的谷歌地图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.