发布网友 发布时间:2023-01-02 13:32
共1个回答
热心网友 时间:2023-10-09 15:58
目前百度在网页版仍然使用地图瓦片,空间参考为webMecator,起始级别为3,范围为256*5,但其调整了投影参数,*经线没在0度,因此第3级 实际有6个瓦片(最左、最右是同一个瓦片的两部分)。
请求格式为
目前经过简单计算推测其基于调整投影参数后 0级瓦片大小为 160x160 ,[0,2]级瓦片都不使用,*进行瓦片大小调整。
矢量地图采用矢量瓦片形式进行存储,通过请求获取相应的矢量内容,在前端进行矢量栅格化绘制
但在与影像叠加时采用了后端获取png图片的方法
https://rt3.map.gtimg.com/tile?z=4&x=13&y=10&styleid=2&version=297 对应的图片内容为
通过试验获取同一水平行上的影像叠加文字图片
可以看到级别对应关系,qq使用了标准的web墨卡托投影,第4级为 16x16
对应其影像数据 4/10/13的卫星影像数据 https://p2.map.gtimg.com/sateTiles/4/0/0/13_10.jpg?version=229
使用 cesiumjs 进行验证,注意腾讯的行号方向是反的,需要使用 {reverseY} 替换
太平洋这仨字太丑了。
腾讯同样不提供前*的数据
影像的资源编码方式和叠加矢量层不同,如:
这是中国南海的一块瓦片,包括越南和海南岛。
使用上方矢量的请求串,获取一下矢量 https://rt3.map.gtimg.com/tile?z=5&x=25&y=17&styleid=2&version=297 也是对应的,那么问题就来了,前面多出来的两个数字是干什么的。
另取一块高级别影像 https://p3.map.gtimg.com/sateTiles/9/25/17/411_284.jpg?version=229
上面5级的也是如是计算,我们就知道相应的规则了。
{level}/{sx}/{sy}/{x}_{y}
下面就让球起飞吧。
腾讯数据在线示例
矢量地图采用矢量瓦片形式存储,且通过 websocket 进行数据传输。这类数据由于格式非公开,我们很难使用,就算将格式公开也需要大量额外工作才能将矢量描述转化为图片输出,因此我们跳过不处理。
我们还是看一下它的卫星图模式。
查看其中的一块海口市的图片 https://webst02.is.autonavi.com/appmaptile?style=6&x=3302&y=1815&z=12
可以看到其地址中使用的是标准的 x/y/z 指定的瓦片,参考上节,我们可以看到通过 UrlTemplateImageryProvider 可以直接访问它的数据。
可以看到南北极高德的数据比腾讯良心多了。
示完待续