ogr2ogr дает разные результаты на разных системах
Я пытаюсь преобразовать файл формы, который представляет административную область Philippines
в геойсон. Я получаю файл формы отсюда. Файл, который я пытаюсь конвертировать это PHL_adm3.shp
,
Я использую этот скрипт:
function shp2geojson() {
ogr2ogr -f GeoJSON "$1.geojson" "$1.shp"
}
for var in *.shp; do shp2geojson ${var%\.*}; done
Я запустил этот скрипт на своем сервере и получил соответствующий файл geojson. Теперь я выполнил один и тот же сценарий на своем локальном сервере, и геометрия для многих городов на моем локальном объекте отличалась от той, которая была на моем сервере. Хотя координаты не сильно отличаются, они отличаются только после 6-7 десятичных разрядов, но они выдают исключение, когда я пытаюсь вставить их в PostGIS
,
Вот пример геометрии, которая выдает ошибку на сервере при вставке ее в PostGIS. Я также публикую информацию о геометрии, которую я получаю в моем городе.
Сервер: Геометрия
Местный: Геометрия
Я тоже побежал ST_IsValidReason
на обеих геометриях. Я получил следующую ошибку на моем сервере.
SELECT ST_IsValidReason(ST_SetSRID(
ST_GeomFromGeoJSON(my_geometry),4326))
Server : Error [('Self-intersection[120.979159 14.71218]',)]
Local : [('Valid Geometry',)]
Я попробовал одно и то же в разных странах, таких как Индия, Япония, Таиланд и во всех тех странах, которые я тестировал, происходило то же самое. На локальном компьютере я не нашел никакой ошибки, но на моем сервере я получил неверную геометрию.
Может кто-нибудь объяснить, что не так с моими запросами и как это исправить?
PS - обе мои системы 64-битные и работают под управлением Ubuntu 14.04.