OSM

1、OSM是什麼

開放街道圖(OpenStreetMap,簡稱OSM)是一個網上地圖協做計劃,目標是創造一個內容自由且能讓全部人編輯的世界地圖(wiki:http://wiki.openstreetmap.org/wiki/Main_Page)。尤爲值得稱道的是,osm數據開源,能夠自由下載使用。

2、OSM數據結構

OpenStreetMap包括空間數據以及屬性數據。其中空間數據主要包括三種:點(Nodes)、路(Ways)和關係(Relations),這三種原始構成了整個地圖畫面。其中,Nodes定義了空間中點的位置;Ways定義了線或區域;Relations(可選的)定義了元素間的關係。
    屬性數據Tags用於描述上述矢量數據基元。(http://wiki.openstreetmap.org/wiki/Elements)

2.1. Node

node經過經緯度定義了一個地理座標點。同時,還能夠height=*標示物體所海拔;經過layer=* 和 level=*,能夠標示物體所在的地圖層面與所在建築物內的層數;經過place=* and name=*來表示對象的名稱。同時,way也是經過多個點(node)鏈接成線(面)來構成的。

2.2. Way

經過2-2000個點(nodes)構成了way。way可表示以下3種圖形事物(非閉合線(Open polyline )、閉合線(Closed polyline)、區域(Area ))。對於超過2000 nodes的way,能夠經過分割來處理。
   a)Open polyline 
    非閉合線:收尾不閉合的線段。一般可用於表示現實中的道路、河流、鐵路等。
   b)Closed polyline 
    閉合線:收尾相連的線。例如能夠表示現實中的環線地鐵。
   c)Area 
    區域:閉合區域。一般使用landuse=* 來標示區域等。

2.3. Relation

一個Relation是用來描述兩個或多個基元的相互關係(nodes, ways 或者其餘的relations),相互的關係經過role來定義,包括:
   a)route :定義公路、自行車道、鐵路等
   b)多個多邊形:定義area例如建築、河堤等
   c)邊界:裝門用來定義行政邊界
   d)限制:用於描述限制好比「非左轉」

2.4. Tag

標籤不是地圖基本元素,可是各元素都經過tag來記錄數據信息。經過'key' and a 'value'來對數據進行記錄(瞭解xml或者數據庫的應該都比較清楚了吧?)。例如,能夠經過highway=residential來定義居住區道路;同時,可使用附加的命名空間來添加附加信息,例如:maxspeed:winter=*就表示冬天的最高限速。Tag更多內容見:http://wiki.openstreetmap.org/wiki/Map_Features

osm2pgsql -d geodb -U geodb ~/Second/osm_data/chind.pbfnode

注:

osm2pgsql導入數據有兩種模式, normal and slim mode。
normal mode會在內存中產生以下三張中間表,並在導入結束後丟棄,所以速度較快。
planet_osm_nodes
planet_osm_ways
planet_osm_rels
而slim mode則將中間結果徹底放置到數據庫中。slim模式的好處是方便更新。
二者使用的區別在因而否加「-s」,加了表示slimmode,本文使用slim mode。
使用slim mode導入數據後在數據庫中會產生以下表。sql

相關文章
相關標籤/搜索