1. 主要切片类型

切片:3857坐标系,4326坐标系,百度坐标系,wmsbbox

矢量:pbf,建筑面,wfs

  1. 开发语言

不限。推荐Python,编写简单不需要开发集成环境notepadd++既可以下载,另外可以集成成lib包供其他程序调用和程序分发共享。

  1. 整体思路
    1. 地图切片下载

根据经纬度构造成、出下载框(矩形, east,west,north,south可以构造一个矩形框)。


然后根据左下角和右上角的坐标点和切片级别,通过公式换算出行列号。最后得出x=[x1,x2,x3 ,……,xn];y=[y1,y2,y3……,yn],z=z0


然后通过构造循环得到xyz=[[ x1,y1,z0],[ x1,y2,z0], [ x1,y2,z0],……, [ x1,yn,z0]],构造url下载即可,下载的切片按照在z,x,y的方式存储。

    如果不会直接换算行列表,也可以使用地图API直接换算出来行列号(麻烦点),对于特殊的地图投影或者自定义的坐标系,推荐直接通过Leaflet先加载出来,在获取行列号转换公式。

    下载的核心在于获取正确的经纬度和行列号的转换公式。

对于wms使用bbox获取地图切片,可以通过根据切片的四个角的坐标构造成bbox,然后按照z,x,y的方式存储,实际上这时的wms已经变成wmts的文件格式了,直接使用wmts的加载方式即可,直接加载。

 

  1. POI数据下载

POI数据主要来源于高德、腾讯、百度、天地图、谷歌地图。

大致下载的方式是通过Key构造HTTP请求来获取POI数据。在下载的区域生成矩形下载框,然后构造下载网格(对于不规则图形,可以通过点在面内的空间关系来获取下载网格)。


下载网格是至关重要的,网格大了之后,获取的数据不完全,太小需要构造很多的HTTP请求,受到KEY调用次数的限制。建议:以高德地图为例,构造请求时下载网格为312m*312m,一次请求获取20POI(已经过测试可行且高效,太乐地图下载器就是这样下载的)。

  1. 下载建筑面数据

建筑面数据也是根据切片的形式下载的,行列号与栅格切片一致。然后对下载的建筑面数据进行解析,保存成SHP文件即可,通过ArcMap处理后即可使用。建议:由于需要较多的解析转换数据,最好的方式是下载OSM的数据https://www.openstreetmap.org/

 

以上方法皆已验证可行,如有更好方式,请补充.


 

发表评论

邮箱地址不会被公开。 必填项已用*标注