Open Street Map (点击查看Wikipedia), 简称OSM,是一个开源的地图服务。很多地图比如苹果地图和百度地图在构建的时候用过OSM的数据,百度地图更是大量使用。顺带一提,Pokemon Go的地图服务似乎也是基于OSM的。
我们可以在本地set up一个OSM的服务器,实现自己编辑维护的地图服务。
结合OSRM (Open Source Routing Machine, 和OSM注意区分,是一个导航服务),可以实现基于OSM地图的简单导航。
搭建OSM服务器流程参考GitHub文档:
GitHub openstreetmap-website 主页
进入后找到INSTALL.md按照里面的教程补全dependencies,拉下代码,配置好需要的PostgreSQL数据库,走完install的流程,server就可以在3000
端口运行了。
如果要改server配置,比如换端口,在openstreetmap-website/config/puma.rb
里修改。
server能起了,就可以按页尾configuration steps 步骤:
创建用户(不需邮件验证,直接按流程修改数据库修改权)
-> 在localhost:3000
登录账号
-> 在用户设置里注册application
-> 获得user key
-> 在openstreetmap-website/config/settings.local.yml
(如果没有就从 settings.yml
cp一个)里,将key添加给iD和portlach2,这样就能用在线的编辑器了。
->想办法取得地图的二进制.pbf
文件,Osmconvert (点击查看Wiki)
这个工具可以转化.osm
文件格式
导入数据库的语句,根据实际情况修改:
osmosis --read-pbf greater-london-latest.osm.pbf \
--write-apidb host="localhost" database="openstreetmap" \
user="openstreetmap" password="" validateSchemaVersion="no"
导入实际数据后,一个可以维护使用的OSM map server就搭好了。


网友评论