1

我试图找出一种方法来限制谷歌地图的拖动选项,例如:

  • 地图视图仅限于显示某些国家。
  • 但是在更高的缩放级别下,用户可以以只有大海在视图中的方式拖动地图。

我的要求是,不管用户的缩放级别如何,他都不能拖动地图来查看海景。那就是只应该显示陆地,如果试图进入大海,应该限制(防止拖动)。

我已经定义了边界以成功限制地图视图。但问题在于更高的缩放级别,用户可以拖动地图,仍在边界内,但只显示我想要阻止的大海。

但我仍然想不出一种方法来完成这项任务。任何人都可以请建议一种方法/机制吗?

谢谢你...

4

3 回答 3

1

乍一看,这似乎很难。如果有一点点可见的土地,你会怎么做,可以吗?

但是,您可以阻止用户拖动地图。在 MapOptions 中设置 draggable:false。

于 2012-06-20T06:40:03.080 回答
1

我对你的问题有点困惑。

你说

“在更高的缩放级别下,用户可以以只有大海在视图中的方式拖动地图”

然后你说

“尽管用户处于什么缩放级别,但他不应该能够拖动地图来查看海景”

无论如何,我有一个解决方案,您可以使地图不可拖动,然后在缩放时更改该值。

例如:

function intialize{

    map = new google.maps.Map(document.getElementById("map_canvas");
    map.setOptions({ draggable : true });

}

google.maps.event.addListener(map,'zoom_changed',function () { 
  if (map.getZoom() >= 4) {
   map.setOptions({ draggable : false});
  }
});

编辑:我想我开始明白你在说什么了。我相信你想要的是让用户放大和探索一个国家,而不是把地图拖到水面上。如果你缩小,你不能再拖动了。我不太确定您是否可以完全实现这一点,但您绝对可以根据缩放级别确定地图是否可拖动。

于 2012-06-20T07:01:11.093 回答
0

你好,我已经看过这个例子,所以如果你能找到一些解决方案,我建议你看一次。 地图视图示例

我提到的另一个例子是这个

于 2012-06-20T05:25:14.650 回答