赞
踩
要理解互联网地图或者说目前所有的在线地图,一定要理解“瓦片金字塔”这个概念。
目前我们所见的所有地图底图服务都是瓦片地图的方式发布的。瓦片地图金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。
当我们建立好了影像金字塔后,前端再请求地图时,则将只是在切好的瓦片缓存中,找到对应级别里对应的瓦片即可。然后在前端将这些请求到的瓦片拼接出来,便可以得到用户需要的级别下的可视范围内的瓦片了。
知道了地图是有很多瓦片组成,而每一张瓦片有对应的瓦片等级(z)和瓦片坐标编号(x, y),目前互联网地图也是通过xyz值是可以找到对应的瓦片的。
常见互联网地图的xyz地址:
高德地图: http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}
高德影像: http://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}
Google地图: http://mt1.google.cn/vt/lyrs=m@207000000&hl=zh-CN&gl=CN&src=app&x={x}&y={y}&z={z}&s=Galile
Google影像: http://mt1.google.cn/vt/lyrs=s&hl=zh-CN&gl=CN&x={x}&y={y}&z={z}&s=Gali
知道了xyz的地址后,我们平台的代码中就可以使用XyzLayer 类来加载地图,例如加载瓦片可以这样写:
- var tileLayer = new mars3d.layer.XyzLayer({
- url: 'http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
- })
- map.addLayer(tileLayer)
知道了xyz的概念就很应该我们怎么下载地图数据了,就是根据需要的地区范围确定xyz的范围值,轮询下载就可以了,自己写工具要考虑很多细节问题,不用重复造轮子, 目前市场上有很多相关工具。
免费工具: MobileAtlasCreator Github开源的代码工具
商业收费工具: 水经微图 . 太乐地图 . BIGEMAP .
下面我们已水经微图 为例来介绍下载的流程。
因为地图瓦片数据一般都很大,建议发布为独立服务。
可以参考教程发布三维数据服务
可以将导出目录exp进行发布为服务:http://localhost:8888/mars3d-data/tile/anhui
发布为服务后,首先验证下随意找一张图片,可以在浏览器可以直接访问,正常加载, 如 http://localhost:8888/mars3d-data/tile/anhui/8/210/102.jpg
在Mars3D框架中打开瓦片图层参数调试编辑页面 ,在这个页面的图层URL输入框内输入刚才的服务url地址 http://localhost:8888/mars3d-data/tile/anhui/{z}/{x}/{y}.jpg
,单击加载图层按钮来调试图层参数。
可以参考教程加载XYZ数据步骤
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。