Cesium & QGIS加载图新地球LRC自定义图层
近期接触到一个新的地理数据信息格式——lrc,在网上没查到具体的标准定义文件,只查到它是一个类似XML的文本文件[1],我需要将lrc文件描述的图层加载到Cesium场景中。
1.文件格式一览
起初我并不知道它就是一个XML文档。根据网上找到的相关文档,我下载了一个图新地球,使用它可以正常加载lrc图层,从加载结果上看目标图层不是矢量类型,更像是WMS或WMTS,而在这款软件里,则称之为“自定义图层”。
使用文本软件打开其中一个lrc[2],里面是一些图层信息,结构有点类似OGC的capability描述。
<?xml version="1.0" encoding="GB18030"?><DataDefine> <Version>0</Version> <Name>img</Name> <GeoGridType>WebMercatorWGS84</GeoGridType> <SampleSize>256</SampleSize> <FileExt></FileExt> <DataVersion></DataVersion> <DataType>urlformat</DataType> <TileRowDir>NorthToSouth</TileRowDir> <LocalPath></LocalPath> <MapSpaceType>GCJ02</MapSpaceType> <UrlParamOrder>z,x,y</UrlParamOrder> <NetPath>http://mapservices.u-care.net.cn/V1/UcareLimitedFlightArea_Test/?z=%d&x=%d&y=%d&tilesize=256&layer=no_flyregion&token=</NetPath> <Range> <West>-180</West> <East>180</East> <South>-85</South> <North>85</North> <LevelBegin>1</LevelBegin> <LevelEnd>20</LevelEnd> </Range> </DataDefine>
其中NetPath
这个标签的值就是图层源地址,
http://mapservices.u-care.net.cn/V1/UcareLimitedFlightArea_Test/?z=%d&x=%d&y=%d&tilesize=256&layer=no_flyregion&token=
乍一看和标准的XYZ地图URL很像,如果直接复制到QGIS里是无法获取地图瓦片的,需要做一些修改,因为格式不对,修改为如下。
http://mapservices.u-care.net.cn/V1/UcareLimitedFlightArea_Test/?z={z}&x={x}&y={y}&tilesize=256&layer=no_flyregion&token=
2.添加到QGIS地图
在QGIS里,添加上述XZY图层源
接着将图层添加到地图画布里,成功显示。
3.添加到Cesium场景
对于XZY地图,Cesium有专门的支持,以下是添加该类型图层的示例伪代码。
const viewer = new Cesium.Viewer({...}); viewer.imageryLayers.addImageryProvider( new Cesium.UrlTemplateImageryProvider({ url: 'http://mapservices.u-care.net.cn/V1/UcareLimitedFlightArea_Test/?z={z}&x={x}&y={y}&tilesize=256&layer=no_flyregion&token=', }) );
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 开源的 DeepSeek-R1「GitHub 热点速览」
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)