下载OpenStreetMap离线地图数据并搭载瓦片服务器
一、下载OpenStreetMap离线地图数据
OpenStreetMap可以在Geofabrik Download Server进行下载。
红框部位可直接下载洲区域地图。
也可以点击洲名称,进入下载国家区域的地图。
该网址似乎没有提供省市级别的地图,至少本人没有找到。
确定要下载的地图之后,建议下载.bz2格式的地图(因为目前只知道如何处理这样的地图)。
下载如果是linux系统,建议tmux+axel。(本人下载数据用的Ubuntu,处理数据的软件是在win7上)
下载完成后是bz2格式的压缩文件,需要解压一下(linux系统可直接用bunzip2解压,如果是win的话,好像还不能直接解压,搜了下据说有bzip2 for windows,还有7z可以解决)。
解压会得到一种osm格式的数据。
二、处理osm数据
处理osm数据用到一个软件:maperitive。
下载下来之后,在安装目录下有个 Maperitive.exe 直接双击运行就好。
提示内容叉掉,左上角 file -> open map sources。
找到刚刚下载的osm格式数据。打开。
然后右下角 Map Source,里面就有两个地图数据源,一个是刚刚加载的,另一个是原生的,原生的地图数据比较简单,不详细。
把Web map(OSM Mapnik)前边的黄色五角星点一下,原生的地图就取消了,剩下的就是下载下来的地图了。
在,左边,有个Commander,是个命令行工具。
在Command prompt:这里可以输入指令。
把地图拉到自己想要的范围,
然后输入指令:
generate-tiles minzoom=1 maxzoom=3
这里将zoom范围设置的1~3,根据自己实际需求进行设置。
(minzoom是显示的图最小,即整个区域地图的缩略图,maxzoom是显示图最大, 可以看到很多细节)。
运行过后,在Maperitive的安装目录下就会多一个Tiles文件夹。
这就是地图瓦片。
三、搭建瓦片服务器
瓦片服务器其实就是打一个web服务,请求url,将对应的图片进行返回。
这里采用的python-flask(因为搭建起来很简单,几行代码就OK,具体操作的时候也可以换成其他方式)。
搭建python-flask的瓦片服务器,只需要有python环境,然后安装flask库就行。
具体细节就不多说,直接看完整代码。
from flask import Flask, Responseapp = Flask(__name__)@app.route("/")
def index():return "<h1>map source</h1>"@app.route("/tiles/<int:x>/<int:y>/<int:z>", methods=['GET'])
def getTiles(x, y, z):# return str(x)+"_"+str(y)+"_"+str(z)imgPath = "Tiles/{}/{}/{}.png".format(x, y, z)resp = Nonewith open(imgPath, 'rb') as f:img = f.read()resp = Response(img, mimetype="image/png")return respif __name__ == '__main__':app.run(debug=True)
很简洁,20行代码就搞定了。
然后在浏览器"localhost:5000/tiles/1/2/3"就可以看到浏览器页面中显示了相应的地图了。
下载OpenStreetMap离线地图数据并搭载瓦片服务器相关推荐
- 如何下载Mbtiles离线地图数据
瓦片数据MBTiles存储简介 地图制作者面对一个数以百万计的地图瓦片残酷的现实:大多数文件系统和传输协议对处理数以百万计的图像不是很有效,在磁盘为FAT32格式中,一个文件夹中最多含有65536个文 ...
- 添加离线地图数据到三维地图服务器
添加离线地图数据到三维地图服务器 发布时间:2020-03-03 版权: 搭建离线地图服务主要是两个步骤:一是:下载离线地图服务需要的地图数据:二是:将下载的离线地图数据发布成地图服务:只有做好这两步 ...
- 如何下载高德离线地图瓦片数据
离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另外一种是手机上用来 ...
- 如何下载谷歌离线地图瓦片数据
离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另外一种是手机上用来 ...
- 如何下载百度离线地图瓦片数据
离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另外一种是手机上用来 ...
- 如何下载TMS离线地图瓦片数据
离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另外一种是手机上用来 ...
- 基于高德离线地图数据实现GPS经纬度逆解析城市信息
一.获取离线数据: 如果你只是想实现逆解析功能,那该步骤可以跳过,因为地图数据已经收集打包好了.直接文末找git路径就好了. 准备工作:python numpy h5py open ...
- 离线地图数据包下载(全国地图数据)及应用到手机APP
Oruxmaps作为一款非常强大的户外gps导航软件,可以实现离线地图导航,在没有手机信号.飞行模式下都可以正常导航:同时功能强大,可以自定义离线地图,支持记录/跟踪轨迹.导入/导出航迹.根据航迹导航 ...
- 搭建全国离线地图数据服务器解决方案
Bigemap GIS大数据 数据处理与开发应用一站式解决方案 技术服务:数据中心 + 桌面端 + 移动端(APP) + WEB端 关 键 词: ...
最新文章
- mxnet nd中的asscalar() 向量转换为标量 转
- 中西三大差距根源在哪里?
- Postman:Postman(HTTP的测试工具)使用方法详细攻略
- android webview loadurl本地,Android WebView 使用loadUrl方法执行本地JavaScript
- 平台游戏中走与跳的实现
- insert select带来的问题
- C#判断某软件是否安装
- [架构] 分布式和集群的区别
- java中的holder类_java – HashMap中Holder类的用途是什么?
- 新年第一篇!西南民族大学第十届校赛(同步赛)
- 长沙试水数字人民币:线下支持数字人民币支付的商家已达3404个
- IE8 新增的Javascript,css功能
- SCPPO(二十二):读取配置文件---程序猿必不可少的技能
- 《刘润·5分钟商学院》学习总结01
- LENET-5卷积神经网络的深度学习技术
- 计算机的应用数据处理,计算机的应用领域:数据处理(或信息处理)
- PS制作 LOGO图片
- 人机交互及用户体验、GUI思考
- 马路上“低头族”的交通隐患 ,小心埋头苦干的恶果
- SAP CRM BOL编程基础,代码+详细注释