分享
首页 资讯 技术分享 查看内容

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

发表于 2022-7-1 17:33
zzv_icon7229 zzr_icon0
摘要: 06XYZ瓦片观察一下在低代码API中给瓦片图层设置的url,可以发现长相有些类似,都是{x} 、{y} 、{z} 作为“占位符”去替换实际请求的瓦片地址。http://webst01.is.autonavi.com/appmaptile?style=6x={x}y={y}z={z}​h ...

06

XYZ瓦片

观察一下在低代码API中给瓦片图层设置的url,可以发现长相有些类似,都是{x} 、{y} 、{z} 作为“占位符”去替换实际请求的瓦片地址。

http://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}http://a.tile.thunderforest.com/cycle/{z}/{x}/{y}.pnghttp://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/tile/1.0.0/World_Imagery/default/GoogleMapsCompatible/{z}/{y}/{x}.jpghttps://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这种形式表达,那么也可以去试一试它能否加载。

例如:

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的形式可能为:

……/{z}/{y}/{x}[.Format]……/{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城市,内置多种模板,自由编辑

• 森城市支持不同类型城市数据的插入和自动融合,并提供友好而强大的场景编辑能力和性能处理能力,无需具备GIS、建模等专业技能,就可以轻松DIY自己的酷炫城市三维场景。

• 森城市具备开放的城市场景输出能力,无需担心场景后续使用的兼容问题。


低代码ThingJS:低代码灵活开发数字孪生可视化应用

• 低代码ThingJS提供了丰富的3D开发API、完善的开发文档和视频教程,熟悉基础的JavaScript前端知识即可上手数字孪生3D可视化应用开发。

• 低代码ThingJS是纯H5的WebGL架构,可在各类主流网页浏览器中自如运行,包括可在移动端直接访问运行。

• 低代码ThingJS提供全生命周期的开发组件,大大提升数字孪生可视化项目开发效率。

相关文章