RUS  ENG 

Програмный экспорт из файлов zpkg

Страницы: 1
RSS
Програмный экспорт из файлов zpkg
 
Несколько общих вопросов

ZuluGis самой свежей версии с сайта(10.0.0.8796u.x64) от 30.01.2024
COM-объекты используются из C# (.NET7-8)

В проекте была необходимость импорта данных из zpkg-файлов в PostgreSQL, со всеми стилями, значками.
Первый вариант работал через экспорт в MIF, с последующим чтением этого файла и заливание в pgsql.
Но, практика показала, что подобный путь изобилует огромным количеством подводных камней.
Чтение mif-файла шло через библиотеку GDAL, и не все стили корректно обрабатывались(это как минимум).
Конечно, все эти проблемы решили, но экспортёр оброс кучей костылей, которые сильно влияли на быстродействие(есть файл zpkg, внутри которого 2 миллиона+ контуров).

Было решено читать данные напрямую из файлов zulu. Отсюда ряд вопросов.
1. Каким образом(и как более правильно) читать контура и соответствующие им атрибуты?
Как я понял, со слоем может быть связано несколько таблиц. Как мне получить всю атрибутивную информацию для текущего элемента и ничего не потерять?
2. В какой СК лежат контура?
3. Что означает функция layer.GetWkt(crs)? Происходит пересчёт из СК, в которой лежат координаты в указанную crs?
4. Как получить координаты или запись WKT в СК слоя, Без пересчёта.
5. Как пересчитать геометрию элемента и получить его запись WKT? Я вижу только функции (пример)crs.ConvertPolyline(layer.Polyline).
В результате получаю объект Polyline у которого нет GetWkt()
Я решил эти вопросы таким образом: Проверяю графический тип объекта и по точкам пересчитываю контур и формирую из него геометрию через библиотеку NetTopologySuite.
Но может есть нормальный способ через объекты и методы ZuluXTools?
6. Если я копирую слой с пересчётом СК, то полученная геометрия экспортируемая в mif ложится на местность так же как в zulugis.
Если же я этого не делаю и сам пересчитываю координаты из CRS полученной функцией layer.GetCrs() в ту, которая мне нужна(МСК, 3857), то получаем небольшой сдвиг. Возможно это вопрос не к вам и я просто не до конца понимаю логику работы с СК в ZuluGis.

Спасибо!
Страницы: 1