openlayer 6 + 天地图之坐标系

2. 什么是EPSG:3857坐标系(投影坐标)
在openlayers 中默认的坐标就是google的墨卡托坐标,也就是我们经常看到的 EPSG:3857 坐标系。
EPSG:3857 的数据一般是这种的。[12914838.35,4814529.9],看上去相对数值较大。不利于存储,比较占内存。

3. 什么是EPSG:4326 坐标系(地理坐标)
4326 WGS-84:是国际标准,GPS坐标(Google Earth使用、或者GPS模块)
EPSG:4326 的数据一般是这种的。[22.37,114.05]。利于存储,可读性高
所以我们常常看到和用到的坐标系数据往往不是墨卡托坐标,而是EPSG:4326坐标系下的坐标数据。因为易读和存储小。

对比下上面的两种坐标系渲染出来的map,可以明显的看到 EPSG:4326 感觉map 地图被上下压缩过一样。而 EPSG:3857 坐标系就很正常。这是因为他们的投影不同造成的。
所以总结下:在实际开发中,因为map源数据大部分都是EPSG:4326的数据源格式的数据,但是使用EPSG:4326的坐标系地图会出现被压缩的感觉。所以我们都是采用 EPSG:3857的坐标系类型,把数据源转换位 EPSG:3857的数据源即可。但是这个EPSG:3857数据源不易读取和值占内存原因,所有结合两者的缺点,我们采用坐标转换,即 EPSG:4326转 EPSG:3857。
————————————————
版权声明:本文为CSDN博主「@必意玲」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36410795/article/details/106429109

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,OpenLayers中切换底图是通过图形坐标系的转换实现的。OpenLayers支持多种地图底图,每个底图都有自己特定的坐标系。当切换底图时,OpenLayers会自动将当前图形的坐标转换为新底图的坐标系。 要切换底图,首先需要创建一个新的底图图层,并指定该图层的坐标系。然后,将新底图图层添加到地图对象中,并设置为当前显示的底图。 下面是一个简单的示例代码: ```javascript // 创建地图对象 var map = new ol.Map({ target: 'map-container', // 设置初始底图 layers: [ new ol.layer.Tile({ source: new ol.source.OSM() // OpenStreetMap底图 }) ], view: new ol.View({ center: [0, 0], zoom: 2 }) }); // 切换底图 function switchBaseLayer() { // 移除当前底图 map.getLayers().removeAt(0); // 创建新的底图图层 var newBaseLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ url: 'http://{a-c}.tile.example.com/{z}/{x}/{y}.png' // 新底图的URL地址 }), extent: ol.proj.get('EPSG:4326').getExtent() // 新底图的坐标范围 }); // 添加新的底图图层 map.getLayers().insertAt(0, newBaseLayer); } ``` 在上面的例子中,初始底图是OpenStreetMap,当调用`switchBaseLayer()`函数时,会移除当前底图,并创建一个新的底图图层,使用`ol.source.XYZ`作为数据源。你可以根据实际需要修改新底图的URL地址和坐标范围。 注意:切换底图时,地图上的其他图层和要素将保持不变,只有底图会发生变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值