Latar Belakang
Mengunduh data OSM Alberta dari Geofabrik dan menjalankannya di server Linux pribadi menggunakan PostgreSQL 9.1, PostGIS 2.0, Mapnik 2.1.0, osm2pgsql, Apache 2, mod_tile, renderd, dan OpenLayers:
Data diimpor menggunakan osm2pgsql
sebagai berikut:
osm2pgsql -W -K -S /usr/local/share/osm2pgsql/default.style -d osm alberta.osm.bz2
Masalah
Data OSM untuk Alberta tidak lengkap. Saya diberi satu set shapefile yang meningkatkan data OSM:
City.dbf, City.prj, City.sbn, City.sbx, City.shp, City.shp.xml, City.shx
Ditambah shapefile tambahan untuk desa, daerah perkotaan, batas kabupaten kota, dan sebagainya. Saya telah berhasil mengimpor shapefile ke PostgreSQL menggunakan plugin pgAdmin . The City.prj
berkas menjelaskan proyeksi sebagai berikut:
GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
Data shapefile dan data OpenStreetMap (OSM) masing-masing memiliki database sendiri, tetapi saya yakin saya ingin mengimpor data shapefile ke dalam database OSM. (Ini adalah server pribadi dan salinan lokal dari data OSM; data shapefile tidak dapat dibagikan secara legal.)
Perbarui # 1
Agar lebih jelas, shapefile tidak mengandung jalan: hanya batas kota (yang jelas bukan bagian dari data OSM), kota (beberapa di antaranya merupakan bagian dari data OSM), dan batas kota untuk kota-kota besar (beberapa di antaranya mungkin konflik dengan data OSM).
Pertanyaan
Bagaimana cara menggabungkan data shapefile dengan data OSM sehingga kota-kota baru muncul di peta?
Catatan: Perhatian utama saya adalah menyelesaikan data duplikat (misalnya, Edmonton terdaftar di OSM dan shapefile yang dibeli).
tautan yang berhubungan
- http://wiki.openstreetmap.org/wiki/Shapefiles
- http://wiki.openstreetmap.org/wiki/Import/Shapefile
- http://wiki.openstreetmap.org/wiki/Convert_shp_to_osm_using_grass_and_gpsbabel
- https://github.com/wavded/js-shapefile-to-geojson
- http://redmine.yellowbkpk.com/projects/list_files/geo
- http://www.gdal.org/ogr2ogr.html
- http://wiki.openstreetmap.org/wiki/Ogr2osm
- https://github.com/andrewguertin/ogr2osm
- http://svn.openstreetmap.org/applications/utils/import/shp2osm/
- http://crschmidt.net/blog/archives/354/polyshp2osm/
- http://www.mail-archive.com/[email protected]/msg12487.html
Terima kasih!
sumber
Jawaban:
pengantar
Ini akan membutuhkan sejumlah besar pekerjaan manual untuk mendeteksi dan menghapus data yang digandakan. Saat Anda mendeteksi dan menyelesaikan data duplikat; Anda ingin kedua sumber berada dalam format geo yang sama: shapefile, DB PostGIS, atau sebagai data OSM.
Alur kerja
Alur kerja berikut ini didasarkan pada memiliki kedua sumber data sebagai OSM sebelum menggabungkan dan menyelesaikan data duplikat.
Ada beberapa opsi untuk mengubah data menjadi OSM:
SEBUAH]
ogr2osm
seperti yang telah Anda catat: ada beberapa versi ogr2osm yang berbeda, tidak peduli yang mana yang Anda gunakan - Saya lebih suka pnorman's , ini adalah yang paling mutakhir. Apa pun yang terjadi, pastikan file terjemahannya kompatibel dengan versi ogr2osm yang Anda gunakan (demi kesederhanaan, yang saya tautkan harus kompatibel dengan versi ogr2osm). Lihat di sini sebagai contoh untuk file terjemahan yang kompatibel dengan ogr2osm pnorman.Pastikan file terjemahan lengkap dengan semua informasi yang Anda inginkan di shapefile Anda. File terjemahan akan mengonversi Jenis dan atribut shapefile Anda ke dalam apa yang disebut OSM Tag , yang terdiri dari Tombol dan Nilai.
1a. jalankan ogr2osm.
Buka josm , unduh plugin conflation
Data pemerintah Anda sekarang menjadi file osm. Buka josm, File> buka Data Anda ada di sana sebagai layer.
Jika Anda sudah memiliki data OSM yang disimpan secara lokal di komputer Anda, buka di josm, itu juga akan terbuka sebagai layer baru.
Menggabungkan kedua sumber data ini bersama-sama dan menyelesaikan data duplikat dikenal sebagai penggabungan . Jalankan plugin conflation dan selesaikan semua konflik.
Jika JOSM kehabisan memori (misalnya, ketika menggunakan file besar), pisahkan jenis atribut dan selesaikan alur kerja ini beberapa kali, masing-masing dengan jenis data yang berbeda (misalnya batas dan penggunaan lahan; jalan raya; bangunan), dan akhirnya bergabung file osm bersama-sama menggunakan osmium atau alat lain.
B. JOSM juga dapat membaca shapefile walaupun dukungan SHP tidak sempurna dan metode ini mengasumsikan shapefile dapat dimuat seluruhnya ke dalam memori ...
filename.shp
).Impor sebagai OSM
Impor data OpenStreetMap ke dalam sistem sebagai berikut:
The
-j
pilihan adalah kunci karena petunjuk osm2pgsql untuk mengimpor tag ke dalamhstore
kolom, ini melestarikan struktur data yang mendasari dan akan mengimpor semua tag ke dalam database.Buat Mapnik Layer
Agar data muncul di peta, tambahkan layer dan gaya untuk layer itu. Ini bisa sesederhana berikut ini:
mapnik-stylesheets/osm.xml
.</Map>
tag penutup ......
Buat Gaya Mapnik
Melanjutkan dari bagian sebelumnya:
</Style>
tag terakhir (sekitar baris 3350).&layer-shapefiles;
arahan:...
Roadmatcher
roadmatcher adalah alat lain yang mungkin bisa membantu
sumber
find_extent
lebih memilih panggilan daripadast_find_extent
). Basis data telah menginstal PostGIS 2.0.