分享
查看: 2748|回复: 0

[分享] 【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务

[复制链接]

【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务

发表于 2022-7-19 16:32:33 来自 分享 阅读模式 倒序浏览
zzv_icon2748 zzr_icon0 查看全部
06
XYZ瓦片
观察一下在低代码API中给瓦片图层设置的url,可以发现长相有些类似,都是{x} 、{y} 、{z} 作为“占位符”去替换实际请求的瓦片地址。
  1. http://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}

  2. http://a.tile.thunderforest.com/cycle/{z}/{x}/{y}.png

  3. http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/tile/1.0.0/World_Imagery/default/GoogleMapsCompatible/{z}/{y}/{x}.jpg

  4. https://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS?Service=WMTS&Request=GetTile&Version=1.0.0&Layer=World_Topo_Map&Style=default&Format=jpg&TileMatrixSet=default028mm&TileMatrix={z}&TileRow={y}&TileCol={x}
复制代码

所以又把这种形式的 url 叫做 XYZ 瓦片(切片),如果用过QGIS的话可以尝试在QGIS中通过 XYZ Tiles 加载。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
比如有时候我们看到一个url不知道它是哪种“标准”的地图服务,但能用类似的XYZ这种形式表达,那么也可以去试一试它能否加载。
例如:
  1. http://support.supermap.com:8090/iserver/services/maps/rest/maps/World/zxyTileImage.png?z={z}&x={x}&y={y}
复制代码
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
再比如 MapBox 的 Raster Tiles。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
瓦片索引规则
那是不是所有XYZ形式的都可以加载呢?答案是:不是的。比如,百度的瓦片也是XYZ,但它的 XY 原点在经度为0纬度为0的位置,X 从左向右,Y 从下向上。所以百度的瓦片不能加载。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
那什么样的可以加载呢?
如果从XYZ瓦片的索引组织规则来看,以下几种类别的可以加载:
谷歌XYZ
Z 表示缩放层级,XY 的原点在左上角,X 从左向右,Y 从上向下,且瓦片的坐标系为Web墨卡托投影坐标系。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
在实际应用中通过url进行访问的时候,有时候需要注意xyz的顺序,比如前面看到的ArcGIS 发布的 MapServer是{z}/{y}/{x}。
而 OSM(OpenStreetMap)的则是{z}/{x}/{y}。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
所以这种在API里给TileLayer设置url的形式可能为:
  1. ……/{z}/{y}/{x}[.Format]

  2. ……/{z}/{x}/{y}[.Format]
复制代码

TMS
前面已经提到了 ,Z 表示缩放层级,XY 的原点在左下角,X 从左向右,Y 从下向上。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
那么这种在uearth里给TileLayer设置url的形式基本为:
……/{z}/{x}/{reverseY}[.Format]
项目中可能遇到的一种情况就是有时候用XXX下载软件下了瓦片图,比如下图:
下载标准TMS瓦片,也选择了正确的坐标投影。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
下载下来的切片直接当“静态图片资源”,随便用个Web服务器发布(Nginx、Apache、Tomcat、IIS……)。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
比如就用个Tomcat扔进去,在低代码中也可以加载。
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
那有人可能会问,那如果下面的我选其他的行不行呢?
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
比如:ArcGIS Server 瓦片、ArcGIS Bundle 紧凑型瓦片。答案是,不一定。准确说是如果把下载下来的瓦片图直接当做“静态资源”访问的话不可以。
因为直接下载下来的资源未必是按照XYZ的形式组织文件目录和文件(夹)名的,瓦片文件类型也未必是图片类型。比如,ArcGIS Server 瓦片下载下来的文件目录结构如下:
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
ArcGIS Bundle 紧凑型瓦片下载下来的文件目录结构如下:
【森城市】GIS数据漫谈(十二)— 地图瓦片(切片)服务
这种情况下就需要有能把他们转成能通过谷歌XYZ或 TMS瓦片索引规则的url进行访问的服务。
总结:
低代码目前支持的地图瓦片(切片):
1.支持ThingMap发布的地图瓦片服务
2.支持常见的互联网在线地图瓦片服务(百度地图除外)
3.支持ArcGIS发布的地图服务(MapServer)
4.支持OGC标准的 WMTS 地图瓦片服务
5.支持OSGeo标准的 TMS 地图瓦片服务
6.支持符合谷歌XYZ、TMS瓦片索引组织形式的XYZ瓦片服务

针对上述几点,有以下注意事项
1.地图瓦片服务的坐标系目前仅支持Web墨卡托投影坐标系(EPSG:3857)
2.如果是标准的TMS规则,那么url中用{reverseY}作为“占位符”
例如:……/{z}/{x}/{reverseY}.png
3.上述瓦片均为图片类型切片,一般为 jpg/png 图片格式 ,暂不支持矢量切片 VectorTile(如 Mapbox 的 mvt )。



工具推荐


森城市:一键生成3D城市,内置多种模板,自由编辑
• 森城市目前提供全国范围内110多个城市的标准三维场景的构建服务,使城市三维场景的构建速度提升至分钟级。
• 森城市支持不同类型城市数据的插入和自动融合,并提供友好而强大的场景编辑能力和性能处理能力,无需具备GIS、建模等专业技能,就可以轻松DIY自己的酷炫城市三维场景。
• 森城市具备开放的城市场景输出能力,无需担心场景后续使用的兼容问题。

低代码ThingJS:低代码灵活开发数字孪生可视化应用
• 低代码ThingJS提供了丰富的3D开发API、完善的开发文档和视频教程,熟悉基础的JavaScript前端知识即可上手数字孪生3D可视化应用开发。
• 低代码ThingJS是纯H5的WebGL架构,可在各类主流网页浏览器中自如运行,包括可在移动端直接访问运行。
• 低代码ThingJS提供全生命周期的开发组件,大大提升数字孪生可视化项目开发效率。

avatar
游客~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

130700ppkpl8x3t7tt1b1t