谷歌地图:避免出海

时间:2012-06-20 05:21:44

标签: google-maps

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

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

我的要求是尽管用户所处的缩放级别,但他不应该拖动地图以获得海景。只有土地应该显示,如果试图进入大海,应该受到限制(防止拖拽)。

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

但我仍然无法找到完成任务的方法。任何人都可以请一个方法/机制吗?

谢谢......

3 个答案:

答案 0 :(得分:1)

这起初看起来很难。如果有一小块土地可见,你会怎么做,这样可以吗?

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

答案 1 :(得分: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});
  }
});

编辑:我想我开始理解你在说什么了。我相信你想要的是允许用户放大和探索一个国家,而不是将地图拖到水面上。如果缩小,则无法再拖动。我不太确定你是否可以完全实现它,但你可以根据缩放级别确定地图是否可以拖动。

答案 2 :(得分:0)

您好我已查看此示例,因此如果您能找到解决方案,我建议您查看一次。 MapView Example

Another Example I Refered is this