Openlayers如何实现不同大小加载不同图层?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Openlayers如何实现不同大小加载不同图层?相关的知识,希望对你有一定的参考价值。
map.add(高速公路) map.add(楼宇街道) 放大级别有四个 一级大 二级大。。。(scales【50000,5000,2000,1000】) 现在是如何实现第一级只map.add(高速公路),第二级map.add(高速公路) map.add(楼宇街道)两都加上。如果重新执行new map()方法,也就是说把第一级删掉,然后把第二级加上去,就会有问题,没有保持放大 原地 功能,不能放大需要的位置,每次放大都返回到默认的new map()时候的地点。哎。。。新手求助。js代码
参考技术A 你的地图加载的时候默认的加载5000的缩放级别是默认级别“0”,那加载的时候让它缩放级别为3000也就是你自己设定的级别“1”,你可以试试加个map.zoomTo(1); 参考技术B 利用zoomend事件,if(map.getZoom() > 6)
show some layers....
else
hide some lyers...
追问
先谢谢了,还有就是,我设置了四个放大级别 【5000,3000,1000,500】,地图加载的时候默认的加载5000的缩放级别对吧,那我怎么设置加载的时候让它缩放级别为3000啊?
追答 在加载时执行
map.zoomToExtent(new OpenLayers.Bounds(
95.63019671881604, 33.51295049999686,
127.6101400673002, 48.16592553724036
));
这是指定经纬度范围的。
缩放到指定级别的方法你要查一下文档
哦,你知道google地图上的 epsg:900913 坐标(6764197.11161,-6806377.86714)
跟经纬度有啥关系啊,我现在想要把 三维地图上的这些坐标 转换成经纬度才能在二维地图上setCenter(120.3123,,30.2121)方法。6764197.11161,-6806377.86714这两个数字 我研究了两天都搞不懂啥意识,怎么可能转换成经纬度,还有负号的,网上找了很多方法都不知道怎么搞。
这个就不清楚了,应该是投影的事,我是用的geoserver做地图源。
projection: new OpenLayers.Projection('EPSG:4326')
以上是关于Openlayers如何实现不同大小加载不同图层?的主要内容,如果未能解决你的问题,请参考以下文章
openlayers入门开发系列之批量叠加zip压缩SHP图层篇