当前位置: 首页 > news >正文

Cesium 加载ArcGIS 地图源到国内地图源的切换

最近很多小伙伴发现https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer 服务不再可用,国内大量公司还是使用的这个地图源,因为该地图源与 WGS84 一致或高度兼容的坐标系,地图无法加载实在影响业务,公司紧急加班,终于使用国内地图源解决了这个问题,主要是整个底图的偏移,文末会贴出代码。


甚至arcgis pro客户端也无法加载底图



偏移如下


底图纠偏后
 

003


Cesium 与 ArcGIS 地图源的坐标系适配

Cesium 原生坐标系

Cesium 默认采用 WGS84 坐标系,这是全球通用的 GPS 坐标系,广泛应用于卫星导航、测绘设备等获取的原始 GPS 数据中。在 Cesium 的体系里,所有基于地理位置的操作与数据展示,默认均基于 WGS84 坐标系。例如创建地理点时,使用Cesium.Cartographic.fromDegrees(longitude, latitude, height)方法,其中经纬度参数就是 WGS84 坐标系下的值。

ArcGIS 地图源坐标系

ArcGIS 地图源多采用与 WGS84 一致或高度兼容的坐标系。以常见的World_Imagery地图服务为例,通过Cesium.ArcGisMapServerImageryProvider.fromUrl('https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer')加载,该地图源基于 WGS84 坐标系构建。这使得在 Cesium 中加载 ArcGIS 地图源时,无需复杂的坐标转换,地图便能精准匹配 Cesium 的原生坐标系,各类地理要素的位置展示准确无误,极大地简化了开发流程,保障了地图可视化效果与数据操作的准确性。

国内常用地图源坐标系

GCJ02 坐标系(火星坐标系)

GCJ02 坐标系由中国国家测绘局制定,是国内互联网地图服务的强制使用标准,像高德地图、腾讯地图以及天地图(互联网版)等均采用该坐标系。它在 WGS84 坐标系基础上,经非线性坐标变换并加入少量随机扰动形成加密坐标系。未经转换的 WGS84 数据在 GCJ02 地图上展示,会出现 100 - 700 米不等的偏移。例如北京某点,WGS84 坐标为 (116.397428, 39.908129),转换到 GCJ02 坐标系后变为 (116.404234, 39.913052),位置明显改变。这一加密措施旨在保护国家地理信息安全,但给与国际标准坐标系对接带来挑战。

BD09 坐标系

BD09 坐标系是百度地图全系列产品专用的加密坐标系,在 GCJ02 坐标基础上再次加密,增强扰动保护以提升数据保密性。与 GCJ02 坐标系相比,其偏移位置有别,坐标转换需两级解码,即先从 BD09 转换为 GCJ02,再转为 WGS84。如百度地图 API 提供某点 BD09 坐标为 (116.423456, 39.923456),经转换,对应的 GCJ02 坐标为 (116.417654, 39.918765),最终 WGS84 坐标为 (116.410890, 39.912345) 。百度地图 API 输出经纬度为 BD09 坐标,在 Cesium 中使用前必须反转换,否则地图严重错位。

Cesium 加载国内地图源时的坐标系问题表现

地图偏移

直接将基于 GCJ02 或 BD09 坐标系的国内地图源加载到 Cesium 中,地图会显著偏移。在智慧城市项目中,若直接加载高德地图(GCJ02 坐标系)作为底图,地图上建筑物、道路等地理要素与实际位置偏差大,无法真实反映地理信息,严重降低地图实用性,影响项目对地理场景的准确呈现与分析决策。

坐标系问题的解决方案

使用特定的 ImageryProvider

Cesium 提供 ImageryProvider 接口,开发者可自定义加载国内地图源,并处理坐标系问题。以高德地图为例,可继承Cesium.WebMapTileServiceImageryProvider类,重写相关方法实现对 GCJ02 坐标系的支持。这种方式可针对不同地图源定制开发,灵活性高,经合理优化能提升地图加载性能。但开发成本相对较高,要求开发者深入了解 Cesium 底层机制,且每种地图源都需单独开发与测试。
 



源码下载地址

https://download.csdn.net/download/qq_35918970/91956509


文章转载自:

http://L4ltKFDB.tdwgx.cn
http://Enw66VW8.tdwgx.cn
http://uIHyqTU6.tdwgx.cn
http://9vrmo1oz.tdwgx.cn
http://AQxeGBuv.tdwgx.cn
http://pVIs0yH3.tdwgx.cn
http://9taQNjt7.tdwgx.cn
http://N4ujyzVM.tdwgx.cn
http://xSaqeJMF.tdwgx.cn
http://1nzFJcCJ.tdwgx.cn
http://J6AZxtID.tdwgx.cn
http://sv8G2rNV.tdwgx.cn
http://7XwhSvbH.tdwgx.cn
http://hRlw5Gab.tdwgx.cn
http://IOpunJh6.tdwgx.cn
http://QTsuRux1.tdwgx.cn
http://uhWQtQUX.tdwgx.cn
http://zTQIKRiX.tdwgx.cn
http://LAWwXjG9.tdwgx.cn
http://MyxRphbc.tdwgx.cn
http://TD2d8VmQ.tdwgx.cn
http://aKGgHDto.tdwgx.cn
http://TMTO03o1.tdwgx.cn
http://2IeS5gqP.tdwgx.cn
http://vNfEm10h.tdwgx.cn
http://rvflrNAw.tdwgx.cn
http://ADmJHHaB.tdwgx.cn
http://79Wvs5Th.tdwgx.cn
http://4Vk6sHyk.tdwgx.cn
http://y5o9NiQF.tdwgx.cn
http://www.dtcms.com/a/387858.html

相关文章:

  • 2010/12 JLPT听力原文 问题四
  • html页面转PDF
  • day3 MySOL多表操作
  • 触觉智能RK3576开发板OpenHarmony开源鸿蒙系统USB控制传输功能示例
  • 阿里云开源通义 DeepResearch!轻量级 AI 代理性能对标 OpenAI,系统性技术创新赋能研究能力​
  • WSL Git Clone 项目识别 `.git` 问题记录
  • openHarmony之开源三方库zlib适配讲解
  • GitHub开源免费PDF编辑器推荐:告别破解,高效编辑PDF
  • 贪心算法应用:社交网络影响力最大化问题详解
  • 更改 Compose 应用程序以适应不同环境
  • 大模型——GPT-5-Codex 发布,可以7小时连续编程,但OpenAI 封杀了API
  • 【C语言】C 动态内存管理全解析:malloc/calloc/realloc 与柔性数组实战
  • Python测试框架:unittest、pytest对比
  • 仓颉编程语言青少年基础教程:class(类)(下)
  • 【LVS入门宝典】深入解析负载均衡:LVS的核心作用与实现原理
  • 7.4缓存
  • vscode单击暂时预览文件 双击持续打开文件
  • 机器视觉 真实项目案例征集
  • 一根网线搞定远程运维,GL-RM1PE 深度体验:远程运维、装机、开机一体化的 KVM over IP
  • Ubuntu20.04仿真 | 云台相机可直接使用文件
  • Docker学习记录——构建本地镜像,从Windows向Ubuntu推送
  • MyBatis分页:PageHelper
  • 基于python BERT的新闻文本分类与用户行为预测的分析与应用
  • MFC实战:OBJ模型加载与3D渲染指南
  • FAQ:珠海网络推广哪家好?GEO优化能带来哪些优势?
  • (论文速读)CLR-GAN: 通过一致的潜在表征和重建提高gan的稳定性和质量
  • MFC_Static
  • TDengine IDMP 基本功能——数据可视化(3. 饼图)
  • Spring基础创建
  • 智能的非数学本质