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图层篇

地理服务器中的图层未显示在 OpenLayers 中

openlayers 4快速渲染管网模型数据

geoserver中layer group中的图层顺序问题,为啥看不到道路层

如何使用Openlayers 3加载谷歌离线地图

Openlayers自定义4490坐标系 & 加载自定义坐标系图层