Развлекаюсь портированием осм под навигатор от делорма. Процесс выглядит так:
1) преобразование из pbf в осм
Код: Выделить всё
osmconvert src/*.osm.pbf --out-osm -o=tmp/*.osm.osm
Код: Выделить всё
osmconvert tmp/*.osm.osm --out-pbf -o=mapAll.pbf
Код: Выделить всё
osm2pgsql --create --slim --drop --cache 2000 --cache-strategy dense --number-processes 3 --input-reader pbf --host localhost --port 5432 --database osm --username postgres mapAll.pbf
5) выгрузка в шейпы
Код: Выделить всё
pgsql2shp -h localhost -p 5432 -u postgres -f /home/test/osm/hwLnZ07 osm "SELECT * from hwLnZ07;"
При просмотре карты на навигаторе выяснилась интересная вещь - расхождение координат на 10 минут в направлении север - юг. Например
Код: Выделить всё
SELECT ST_AsText( ST_Transform(way,4326) ) FROM planet_osm_point WHERE osm_id = 1686293227;
Код: Выделить всё
GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]
Код: Выделить всё
PROJCS["Popular Visualisation CRS / Mercator (deprecated)",GEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3785"],AXIS["X",EAST],AXIS["Y",NORTH]]
1) В какой системе координат идет osm (я как-то думал, что она в wgs84)
2) Как задать систему координат в которой осуществить выгрузку ( в pgsql2shp таких параметров не нашел )
3) попытка загрузить из осм в постгру в систему координат 4326 - тоже не увенчалась успехом
Код: Выделить всё
osm2pgsql --proj 4326 --create --slim --drop --cache 2000 --cache-strategy dense --number-processes 3 --input-reader pbf --host localhost --port 5432 --database osm --username postgres mapAll.pbf
Спасибо!