下载OpenStreetMap离线地图数据并搭载瓦片服务器

13 篇文章 0 订阅
1 篇文章 0 订阅

一、下载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, Response

app = 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 = None
	with open(imgPath, 'rb') as f:
		img = f.read()
		resp = Response(img, mimetype="image/png")
	return resp

if __name__ == '__main__':
	app.run(debug=True)

很简洁,20行代码就搞定了。

然后在浏览器"localhost:5000/tiles/1/2/3"就可以看到浏览器页面中显示了相应的地图了。

 

 

 

离线地图_openstreetmap_postgresql_瓦片 离线地图_openstreetmap_postgresql_postgis_mapnik_osm2pgsql_osm数据 写于20150414 关于软件地址 事先说明这其实就是我全部放到百度网盘空间里了。 所以万一一不小心我手抖删了,请mail我。 haibinzhagncn@qq.com 软件包括 leaflet osm里面中国和台湾的数据 openlayers geoserver mabox_studio mapnik 和生成瓦片工具需要的前置包等 postgresql osm2pgsql postgis python 一次只能上传一份那我就少点多几份吧: 介绍(免积分) http://download.csdn.net/detail/a137015127302/8594877 如果懒得自己慢慢找,我想你不介意花点积分的吧。 1.postgreSql_1.&postgis_install http://download.csdn.net/detail/a137015127302/8594903 2.postgreSql_2.mapnik&python_install http://download.csdn.net/detail/a137015127302/8594915 3.postgreSql_3.环境变量配置_osm数据导入 http://download.csdn.net/detail/a137015127302/8594919 4.postgreSql_4.生成图片瓦片byMapnik http://download.csdn.net/detail/a137015127302/8594921 其他:postgreSql_psql_乱码问题 http://download.csdn.net/detail/a137015127302/8594937 上传什么的好烦-- 我再试一次要是还是不能上传我就不玩了。切~ 核心内容(英文版公开资料):http://wiki.openstreetmap.org/wiki/Creating_your_own_tiles 以下本人写的中文版本的核心:只要注意这个基本上就没什么大问题了。 当然你要是懒得自己一步一步走,我想你应该也不介意多花点积分的。 摘录 首先版本请用 postgresql-9.3.6-2-windows.exe + postgis-bundle-pg93x32-setup-2.1.5-1.exe 因为至少如果是 postgresql-9.4.1-3-windows.exe + postgis-bundle-pg94x32-setup-2.1.7-1.exe 存在sample数据库无法创建问题。 同时32位下中文客户端提示信息异常问题,你只能改为英文显示,但是又会有warn信息提示你与本地不符(很烦不是么) 所以结论最新的未必就是最好的。 而且貌似他们已经开始放弃32位了。 还有这个2.1.7貌似是赶工出来的,因为提示信息写的是支援9.3而事实是否定的。 以上是我重装了n多遍的结论。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值