背景
从Geofabrik下载了Alberta OSM数据,并使其在使用PostgreSQL 9.1,PostGIS 2.0,Mapnik 2.1.0,osm2pgsql,Apache 2,mod_tile,rendered和OpenLayers的专用Linux服务器上运行:
数据使用osm2pgsql
以下方式导入:
osm2pgsql -W -K -S /usr/local/share/osm2pgsql/default.style -d osm alberta.osm.bz2
问题
艾伯塔省的OSM数据不完整。给了我一组可以改善OSM数据的shapefile:
City.dbf, City.prj, City.sbn, City.sbx, City.shp, City.shp.xml, City.shx
加上用于村庄,市区,市辖区边界等的其他shapefile。我已经使用pgAdmin 插件成功将shapefile导入到PostgreSQL中。该City.prj
文件描述了其投影,如下所示:
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]]
shapefile数据和OpenStreetMap(OSM)数据都有各自的数据库,但是我相信我想将shapefile数据导入OSM数据库。(这是专用服务器和OSM数据的本地副本; shapefile数据无法合法共享。)
更新#1
需要明确的是,shapefile不包含道路:只有市政边界(绝对不是OSM数据的一部分),城市(其中一些是OSM数据的一部分)和较大城市的城市边界(其中一些可能与OSM数据冲突)。
题
如何将shapefile数据与OSM数据合并,以使新城市出现在地图上?
注意:我主要关心的是解决重复数据(例如,OSM和采购的shapefile中都列出了Edmonton)。
相关链接
- 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/talk@openstreetmap.org/msg12487.html
谢谢!