【问题标题】:Google Map : Avoid showing the sea谷歌地图:避免显示大海
【发布时间】:2012-06-20 05:21:44
【问题描述】:

我正在想办法限制谷歌地图的拖动选项,例如:

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

我的要求是,无论用户处于何种缩放级别,他都不应该能够拖动地图来查看海景。就是只显示陆地,如果想下海,应该限制(防止拖拽)。

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

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

谢谢...

【问题讨论】:

    标签: google-maps


    【解决方案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});
      }
    });
    

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

    【讨论】:

    • 是的,这正是我的意思。但我认为如果我能得到这个国家的边界​​坐标(这意味着沿着它的边界)那么它应该是可能的吗?因为这样我们总是可以将国家边界与可拖动(视图)区域进行比较。
    • 那我相信这就是你要找的。 developers.google.com/maps/documentation/javascript/… 阻止鼠标继续前进的鼠标事件。然后向下滚动几个条目,您会得到 Lat Lng 边界。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      Another Example I Refered is this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多