2012-02-29 129 views
2

我使用谷歌地图api从这website,感谢作者。谷歌地图缩放级别

下面是部分代码:

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(bounds);

我删除它,但地图的中心移动到其他位置,我认为这是(0,0)。

有什么办法解决这个代码的缩放问题?我试图编辑所有的大小虽然..但我不熟悉谷歌地图编码。

谢谢。

+1

在您使用地图的JavaScript API map.setZoom(级别)来缩放 – Eric 2012-02-29 22:47:18

+1

“但我不熟悉谷歌地图编码。 “ ---这是阅读官方文档和官方指南的绝佳机会! – zerkms 2012-02-29 22:50:15

+0

@zerkms是的,我现在正在阅读它,并尝试了很多不同的例子,仍然需要时间来充分理解它。 – 2012-02-29 22:52:54

回答

2

替换此:

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

有:

map.setCenter(bounds.getCenter()); 

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

+0

非常感谢您的解决方案,它的工作原理。我将阅读更多有关边界的文档,但仍然试图理解它。再次感谢。 – 2012-02-29 23:39:24

+1

您可以从这里开始:http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/reference.html#LatLngBounds – 2012-02-29 23:40:47

+0

真的非常感谢您的链接,对我而言是一个很好的开始,我一定会阅读它再次感谢。 – 2012-02-29 23:50:55

2

看起来您在创建地图时设置了缩放级别,但map.fitBounds()更改缩放级别以包含边界。

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

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

感谢您的回复。我现在得到了什么问题。 – 2012-02-29 23:34:38

1

在这里你可以选择你想要显示在地图中心: center: new google.maps.LatLng(0, 0),

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

缩放:14将工作(和任何其他号码)。它现在不能工作,因为它的边界很大,并且试图将所有区域放在这些边界内,并尽可能使用MAX缩放,以显示整个区域。

+0

感谢您的答复。是的,我刚刚从文档中读到,我可以使用google.maps.LatLng(0,0)设置中心,但是我希望根据标记的坐标设置中心,因此仍然在寻找方法。 – 2012-02-29 23:36:55

1

后map.fitBounds(边界)语句添加以下语句

map.setZoom(变焦:数字)

这将缩放级别设置为您所需的缩放水平。

分析代码:

要初始化与缩放水平14和中心(0,0)地图。 的含义map.fitBounds(bounds);命令是调整地图边界以显示所有添加的标记,这些标记又会改变缩放级别。如果删除此声明的中心将继续为(0,0)和缩放级别为14.如果你想设置地图的中心使用下面的语句

map.setCenter(经纬度:经纬度)

谢谢 BJ

+0

感谢您的答复。我实际上是根据标记的坐标设置中心。 – 2012-02-29 23:31:43