首页 文章

谷歌 Map 缩放级别

提问于
浏览
2

感谢作者,我正在使用这个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 回答

  • 1

    替换这个:

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

    有:

    map.setCenter(bounds.getCenter());
    

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

  • 2

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

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

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

    在这里,您可以选择您想要的 Map 中心: center: new google.maps.LatLng(0, 0),

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

    并缩放:14将工作(和任何其他数字) . 它现在不工作,因为它采取了界限,并试图适应这些界限内的所有区域,并使用MAX zoom可能,以显示整个区域 .

  • 1

    在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.

相关问题