Добрый день.
Стоит задача сделать следующий функционал: из клиента загрузить файл слоя в GeoServer, новый или существующий.
Что есть: Geoserver, PostGis, некий слой-файл на сервере, в общепринятом формате
Его нужно загрузить, автоматом.
Что частично работает - Geoserver через плагин импорта. Ручной режим, не подходит. Создает дубли слоя и таблиц, если слой уже существует.
Что не работает - утилита ogr2ogr, а хотелось бы понять, можно ли ей так сделать.
Выполняю команду на сервере ogr2ogr -f "PostgreSQL" PG:"host=localhost dbname=xxx user=xxx password=xxx" "xxx.kml" -overwrite
Таблица слоя перезаписывается (или создается, если её не было), но поля в ней называются немного по-другому, скажем "ogc_fid" вместо "fid", и Geoserver этот слой не видит. Вопрос, что можно сделать, чтобы это корректно воспринялось Геосервером, в случае существующего слоя или при создании нового, как Геосерверу указать, что это новый слой для него?
UPDATE: Так, попробовал на абсолютно новом слое, вроде заработало, просто проблема , что ogr2ogr дает немного другие имена колонкам. Если они будут те же - всё будет хорошо.
"-lco GEOMETRY_NAME=the_geom -lco FID=fid"
Вопрос теперь такой. Как Geoserver заставить принудительно обновить состав колонок в каком-то слое. В Вебинтерфейсе есть кнопка "Обновить тип объекта"
Как можно эту функцию вызвать в командной строке или как-то еще?
Как можно в командной строке добавить новый слой в Геосервер?
И еще вопрос. Ogr2ogr при чтении, например KML-файлов записывает в таблицу поля, которых в исходном файле не было. tessellate, visibility и так далее. Можно этого как-то избежать?
Загрузка слоев из веб-интерфейса в Geoserver на PostGIS
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 16 июн 2015, 11:34
- Репутация: 0
-
- Гуру
- Сообщения: 838
- Зарегистрирован: 10 дек 2009, 23:24
- Репутация: 169
- Ваше звание: старик-гисовик
- Откуда: Москва
- Контактная информация:
Re: Загрузка слоев из веб-интерфейса в Geoserver на PostGIS
REST API не пробовали?
Есть костыльный способ через ручное создание слоев в data_dir, но он именно что костыльный.
Есть костыльный способ через ручное создание слоев в data_dir, но он именно что костыльный.
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 16 июн 2015, 11:34
- Репутация: 0
Re: Загрузка слоев из веб-интерфейса в Geoserver на PostGIS
Спасибо, вроде получилось.
Нашел такую страничку
http://www.ibm.com/developerworks/ru/li ... index.html
Там есть файл-библиотека для php вызовов REST API Геосервера, вот через неё сделал.
Нашел такую страничку
http://www.ibm.com/developerworks/ru/li ... index.html
Там есть файл-библиотека для php вызовов REST API Геосервера, вот через неё сделал.
-
- Гуру
- Сообщения: 838
- Зарегистрирован: 10 дек 2009, 23:24
- Репутация: 169
- Ваше звание: старик-гисовик
- Откуда: Москва
- Контактная информация:
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость