【问题标题】:Restricting Zoom in Nokia Maps ( Javascript Api)限制诺基亚地图的缩放 (Javascript Api)
【发布时间】:2013-11-28 21:21:52
【问题描述】:

我已经使用 java 脚本 Api 实现了诺基亚地图。地图中有各种缩放级别。

有没有办法可以将地图视图限制在特定国家/地区? 我的意思是假设我用缩放级别初始化地图,这样我只能在地图中看到美国。但是用户可以缩小并查看不同的国家。我不想完全关闭缩放功能,因为我希望用户能够在美国放大和缩小。

我的地图实现如下 -

       var map = new nokia.maps.map.Display(document.getElementById("map"),
       {           
         'components': [ new nokia.maps.map.component.ZoomBar(),
                         new nokia.maps.map.component.Behavior(),
                         new nokia.maps.map.component.DistanceMeasurement(),
                         new nokia.maps.map.component.Overview(),
                         new nokia.maps.map.component.ScaleBar(),
                         new nokia.maps.positioning.component.Positioning(),
                         new nokia.maps.map.component.ContextMenu(),
                         new nokia.maps.map.component.ZoomRectangle()],
            'zoomLevel':4   ,       
            'center':[39.8282, -98.5795]            
      });

【问题讨论】:

    标签: javascript api here-api


    【解决方案1】:

    要限制区域,您需要编写一个事件监听器,并监听地图的"mapviewchangeend" 事件。然后,如果地图center 位于给定边界框之外,则侦听器可以更改它。要限制缩放,请将观察者添加到 zoomLevel 属性并限制最大或最小级别。

    理想情况下,由于此类功能可重复使用,因此应将其创建为 MapComponent 并附加到地图上。

    可以在 GitHub here 上找到一个示例地图限制组件(限制区域和缩放)

    可以按如下方式初始化和使用:

    var bounds = new nokia.maps.geo.BoundingBox(
        new nokia.maps.geo.Coordinate(54.8073, 5.9845),
        new nokia.maps.geo.Coordinate(47.4136,14.3671)
    );
    restrictControl = new RestrictMap(5, 20, bounds);
    
    map.components.add(restrictControl);
    

    您只需要更改边界以覆盖美国的地理坐标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多