近期接触到一个新的地理数据信息格式——lrc,在网上没查到具体的标准定义文件,只查到它是一个类似XML的文本文件[1],我需要将lrc文件描述的图层加载到Cesium场景中。
目录
- 1.文件格式一览
- 2.添加到QGIS地图
- 3.添加到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=',
- })
- );
复制代码
- https://baijiahao.baidu.com/s?id=1714195213806840128&wfr=spider&for=pc ↩︎
- https://www.cnblogs.com/tuxingis/p/17545136.html ↩︎
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |