幾種導入osm(openstreetmap)數據的方法


一osm2pgsql+postgresql+postgis

osm2pgsql­——是由OpenStreetMap開發的一個命令行工具負責將OSM數據導入到基於PostgresSql的Postgis的數據庫中。下載地址:http://customdebug.com/osm/osm2pgsql.zip,其次我們還要指定osm2pgsql的gitHub地址因為我們需要的兩個文件在里面可以找到一個是900913.sql一個是default.style,osm2pgsql在github的地址如下:https://github.com/openstreetmap/osm2pgsql

安裝

osm2pgsql是一個綠色軟件,解壓完成后進入到osm2pgsql/x64或者Win32,依你安裝的Postgresql而定,osm2pgsql就安裝完成了。

postgreSQL,並且要安裝好postgis拓展; 
注意:postgis安裝完成后,會在pgAdmin面板左側出現自帶的模板數據庫(如下圖) 
這里寫圖片描述 
postgis_22_sample就是自帶的模板

創建空間數據庫

在這里創建空間數據庫的方式有多種:

依據使用工具來分:可以分為使用dos命令行創建使用SQL語句創建
dos命令行創建:

實例一

創建一個簡單的postgreSQL數據庫:

createdb nanjing 
這里寫圖片描述 
注意:要在postgresSQL安裝目錄下進行! 
在pgAdmin面板中刷新即可出現創建的數據庫nanjing 
這里寫圖片描述 
由於我們所創建的只是一般的數據庫,所以還要添加一些空間拓展

添加空間信息

1)添加pl/pgsql語言:createlang plpgsql nanjing 
(多數情況下,會自動添加好該語言)
 
這里寫圖片描述

2)加載postgis對象和函數定義(postgis.sql) 
存放在C:\Program Files\PostgreSQL\9.4\share\contrib\postgis-2.2

psql -d nanjing -f postgis.sql 
這里寫圖片描述 
加載成功后出現的情況如下圖: 
這里寫圖片描述

3)加載EPSG坐標系統定義(spatial_ref_sys.sql) 
存放在C:\Program Files\PostgreSQL\9.4\share\contrib\postgis-2.2

pgsql -d nanjing -d spatial_ref_sys.sql 
這里寫圖片描述 
加載成功后出現的情況如下圖: 
這里寫圖片描述

導入空間數據

准備工作:

下載osm2pgsql軟件:http://customdebug.com/osm/osm2pgsql.zip 
default.style文件:https://github.com/openstreetmap/osm2pgsql

注意:在下載default文件的時候千萬不要直接在網頁中點擊下載,這樣下載后的內容全部都是網頁而不是真正的代碼,正確的做法是在網頁中打開這個文件,並且將代碼復制到里面去即可!!!
https://github.com/openstreetmap/osm2pgsql/blob/master/default.style

osm數據導入postgis

1.解壓osm2pgsql之后,在dos命令下轉到其安裝目錄: 
這里寫圖片描述 
2.使用osm2pgsql命令將數據導入: 
這里寫圖片描述 
3.導入成功后出現如下結果: 
這里寫圖片描述

導入成功
實例二

第一步:創建一個Postgresql的數據庫

 打開命令行輸入createdb -U postgres -E UTF8 osm 其中osm是數據庫的名稱,postgres是數據庫的用戶名。執行完成后我們打開pgAdmin III客戶端刷新,就可以看到剛才創建的數據庫。

第二步:安裝language plpgsql

createlang -U postgres plpgsql osm

一般這一步都不需要,默認已經安裝上去了。

在數據庫的【拓展】節點可以看到

第三步:添加PostGIS功能到數據庫,執行如下命令:

psql -U postgres -d osm -f “你PostgreSQL安裝路徑/share/contrib/postgis-2.1/postgis.sql”

控制台會打印如下一些命令。

表示安裝完成。

第四步:添加EPSG: 900913支持

上面提到過在osm2pgsql的github上包含900013.sql的文件下載到本地。放到一個好訪問的目錄中,執行如下命令:

psql -U postgres -d osm -f “本地的文件路徑/900913.sql”

第五步:添加OSM數據到數據庫

下載github上的osm2pgsql中的default.style文件並拷貝到本地osm2pgsql的x64目錄中,把下載的chain.osm.bz2文件解壓得到的chain.osm文件也拷貝到osm2pgsql的x64目錄中。

新打開一個命令行進入osm2pgsql的x64目錄中,執行如下命令:

osm2pgsql -U postgres -d osm -s -S ./default.style ./china.osm

一般情況下會報一個”Error reading style file line 151 (fields=4) flag ‘phstore’ is invalid in non-hstore mode“的錯誤,如下截圖:

這說明確實hstore表示所以我們需要添加這個標識。點擊pgAdmin III 工具欄中的SQL標識

在彈出的SQL編輯器中輸入:create extension hstore;命令點擊頂部工具欄中的

圖中畫框的按鈕。控制台會輸出“[QUERY    ] create extension hstore “表示hstore擴展已經添加成功,在pgAdmin III的數據庫拓展中可以看到。

還需要為命令添加一個“–hstore “選項 完整的執行命令是:“osm2pgsql -U postgres -d osm –hstore -s -S ./default.style ./china.osm “這樣就正確了。

導入成功!

補充:導出shp

通過postgis可以將數據重導出為shp文件,方便使用。

 

 二osmosis+postgresql+postgis

安裝

osmosis的可以直接下載解壓就可以使用了:http://wiki.openstreetmap.org/wiki/Osmosis#Latest_stable_version(osmosis依賴於jvm,要保證電腦上的JAVA_HOME、path設置都弄好了)

使用方法:略

 

三使用ArcGIS Editor for OSM轉換數據

下載地址(官網:http://www.esri.com/software/arcgis/extensions/openstreetmap)

​安裝成功后可在ArcMAP中的工具箱中找到

直接使用即可

 其他版本地址:https://github.com/Esri/arcgis-osm-editor/releases

四使用FME(Feature Manipulate Engine)導入OSM數據。使用FME Data Inspector 工具,選擇OSM的格式以及下載的文件便可導入OSM數據進行查看。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM