我已经使用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]
});
最佳答案
要限制区域,您将需要编写事件监听器,并监听地图的"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);
您只需要更改范围即可覆盖美国的地理坐标。
关于javascript - 限制放大诺基亚 map (Javascript Api),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19793477/