Dav*_*fer 20 javascript zoom openlayers openstreetmap cloudmade
我正在使用OpenLayers在网页中显示地图.我正在使用来自CloudMade的磁贴,但OpenStreetMap中的Mapnik磁贴也会出现同样的问题.
我正在尝试限制地图,以便用户无法一直缩放到世界视图 - 我希望它们保持在大致城市级别的缩放至少.
我尝试过使用minZoomLevel
/ maxZoomLevel
/ numZoomLevels
属性; 只有maxZoomLevel
和numZoomLevels
属性似乎有效,而minZoomLevel
属性似乎完全被忽略了.
还有另一种方法来实现这一目标吗?
Jon*_*han 11
你可以覆盖这个isValidZoomLevel
功能.像这样的东西(未经测试):
OpenLayers.Map.isValidZoomLevel = function(zoomLevel) {
return ( (zoomLevel != null) &&
(zoomLevel >= 2) && // set min level here, could read from property
(zoomLevel < this.getNumZoomLevels()) );
}
Run Code Online (Sandbox Code Playgroud)
编辑
或者您需要覆盖可用的分辨率,请参阅此处的示例:http://dev.openlayers.org/examples/zoomLevels.html
XYZ层不支持minZoomLevel,其中OSM是子类.
请参阅以下票证以获取解决方法:
我发现限制XYZ层的maxZoom级别的最简单方法是覆盖getNumZoomLevels方法:
map.getNumZoomLevels = function(){
return 10;
};
Run Code Online (Sandbox Code Playgroud)
这样可以在10级以上进行缩放,并且还可以正确绘制zoomBar控件.这个和zoomOffset
选项的组合应该允许您轻松控制最小/最大缩放,而不必乱用分辨率或子类.
归档时间: |
|
查看次数: |
27263 次 |
最近记录: |