Загрузка слоев из веб-интерфейса в Geoserver на PostGIS

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Kulikovpavel
Новоприбывший
Сообщения: 13
Зарегистрирован: 16 июн 2015, 11:34
Репутация: 0

Загрузка слоев из веб-интерфейса в Geoserver на PostGIS

Сообщение Kulikovpavel » 11 сен 2015, 15:17

Добрый день.

Стоит задача сделать следующий функционал: из клиента загрузить файл слоя в 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 и так далее. Можно этого как-то избежать?

Andrey Zhukov
Гуру
Сообщения: 838
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Загрузка слоев из веб-интерфейса в Geoserver на PostGIS

Сообщение Andrey Zhukov » 11 сен 2015, 16:39

REST API не пробовали?

Есть костыльный способ через ручное создание слоев в data_dir, но он именно что костыльный.

Kulikovpavel
Новоприбывший
Сообщения: 13
Зарегистрирован: 16 июн 2015, 11:34
Репутация: 0

Re: Загрузка слоев из веб-интерфейса в Geoserver на PostGIS

Сообщение Kulikovpavel » 11 сен 2015, 18:44

Спасибо, вроде получилось.

Нашел такую страничку
http://www.ibm.com/developerworks/ru/li ... index.html

Там есть файл-библиотека для php вызовов REST API Геосервера, вот через неё сделал.

Andrey Zhukov
Гуру
Сообщения: 838
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Загрузка слоев из веб-интерфейса в Geoserver на PostGIS

Сообщение Andrey Zhukov » 12 сен 2015, 14:44

Я вообще тут обычно читаю:
http://docs.geoserver.org/stable/en/use ... index.html

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость