导入OSM数据至PostgreSQL数据库

本文介绍了如何将OpenStreetMap(OSM)数据导入到PostgreSQL数据库,包括OSM的基本元素(节点、路线和关系),以及详细步骤:创建PostGIS数据库,设置环境变量,使用osmosis工具进行数据导入。最后,在pgAdmin中验证导入结果。
摘要由CSDN通过智能技术生成

OSM是一款由网络大众共同打造的免费开源、可编辑的地图服务。OpenStreetMap它是利用公众集体的力量和无偿的贡献来改善地图相关的地理数据。OSM是非营利性的,它将数据回馈给社区重新用于其它的产品与服务。而其他地图则是将大多数的地图数据出售给第三方。
OSM的地图由用户根据手提GPS装置、航空摄影照片、其他自由内容甚至单靠地方智慧绘制。网站里的地图图像及向量数据皆以共享创意姓名标示-相同方式分享2.0授权。
OpenStreetMap的优缺点:优点:数据开放,可自己搭建服务器,自己修改数据,有前景(最近发展很快);缺点:数据尚不完善,资源不是十分丰富。
官方(维基)给出的原因:
免费维基世界地图(OpenStreetMap),为任何需要的人,创建并提供象道路图之类自由的地理数据。启动这个项目的原因是,很多人们以为免费的地图,其实有很多法律和技术上的限制,阻碍了人们对地理数据富有创意的、以不可预知的方式进行再利用。
http://wiki.openstreetmap.org/wiki/Zh-hans:Main_Page

(一)获取地图数据

我们可以在openstreetmap.org网站获取我们需要的数据,可以指定区域,也可以选择一个城市或者国家,获取其地理数据,获取的数据有多种形式,大家可根据自己的开发需求确定自己需要的类型。
我下载了后缀名为为.osm 的数据文件。
(二)OSM数据的数据结构
首先,看一下OpenStreetMap的数据结构:
OpenStreetMap的元素(数据基元)主要包括三种:点(Nodes)、路(Ways)和关系(Relations),这三种原始构成了整个地图画面。其中,Nodes定义了空间中点的位置;Ways定义了线或区域;Relations(可选的)定义了元素间的关系。

Node
node通过经纬度定义了一个地理坐标点。同时,还可以height=标示物体所海拔;通过layer= 和 level=,可以标示物体所在的地图层面与所在建筑物内的层数;通过place= and name=*来表示对象的名称。同时,way也是通过多个点(node)连接成线(面)来构成的。
实例:

<osm version="0.6" generator="OpenStreetMap server"> 
    <node id="483034256" lat="55.9458449" lon="-3.2035477" version="1" 
        changeset="2369219" user="spytfyre" uid="166957" visible="true" 
        timestamp="2009-09-04T13:35:42Z"> 
        <tag k="name" v="The Blue Blazer" /> 
        <tag k="amenity" v="pub" /> 
    </node> 
</osm>

Way (way ,closed way ,area)

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值