2012-06-20 69 views
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}); 
    } 
}); 

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

+0

是的,那正是我的意思。但我认为如果我可以得到国家的边界​​坐标(这意味着它的边界),那么它应该是可能的?因为那样我们可以随时比较国家边界与可拖动(视图)区域。 – KTB

+0

然后我相信这是你正在寻找的。 https://developers.google.com/maps/documentation/javascript/reference#MouseEvent 鼠标事件阻止鼠标继续前进。然后向下滚动几个条目,即可获得经纬度范围。 – krikara

1

这起初似乎很辛苦。如果有一小块土地可见,你会怎么做,是吗?

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

+0

是的,没关系。谢谢... – KTB