0

我是 Google Maps API 的新手。

我的情况:以全屏谷歌地图为背景的网站。

第一个问题:如果用户向下滚动或缩小太多,就会出现灰色背景。是否可以限制最大缩小,并且他不能滚动?或者可以垂直重复地图(带有标记)。如果可以设置最大缩小并将他锁定在地图中,我如何动态计算与屏幕分辨率相关的最大缩小?

第二个问题:是否可以将自定义 javascript 添加到标记?示例:我创建了 5 个标记,每个标记都应包含一个自定义值(来自数据库的 ID)。点击我自己的函数应该用自定义值作为参数调用并做一些事情。

编辑:这就是我所说的灰色:(谷歌地图的垂直“末端”) 谷歌地图的垂直端

4

2 回答 2

2
  1. 地图对象有属性 maxZoom,在地图创建时设置

  2. 是的,这是可能的,您可以添加点击事件,更改打开的弹出窗口,并且由于它是 javascript,您可以添加任何其他数据,就像markr.MyData = 'something interesting'

我不确定你的意思是什么灰色部分?我在谷歌地图中看不到最大和最小缩放的灰色部分

在此处输入图像描述

在此处输入图像描述

于 2012-11-28T22:20:11.757 回答
1

好的。终于成功了!:)

修复灰色区域(处理也缩放):

function setBounds() {
    google_allowedBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(-85.000, -122.591),
    new google.maps.LatLng(85.000, -122.333));
    google_lastCenter = google_map.getCenter();
    google_lastZoom = google_map.getZoom();
    google.maps.event.addListener(google_map, "bounds_changed", function () {
        checkBounds();
    });

    google.maps.event.addListener(google_map, 'center_changed', function () {
        checkBounds();
    });
}

function checkBounds() {
    if (google_allowedBounds.getNorthEast().lat() > google_map.getBounds().getNorthEast().lat()) {
        if(google_allowedBounds.getSouthWest().lat() < google_map.getBounds().getSouthWest().lat()) {
            google_lastCenter = google_map.getCenter();
            google_lastZoom = google_map.getZoom();
            return true;
        }
    }
    google_map.panTo(google_lastCenter);
    google_map.setZoom(google_lastZoom);
    return false;
}

标记点击处理程序:

google_listener = google.maps.event.addListener(marker, 'click', markerHandler);

function markerHandler(event) {
    window.console.log(this);
}
于 2012-11-29T01:57:07.557 回答