Страница 1 из 1

OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 18 окт 2015, 18:30
Kot137
Здравствуйте!
Посоветуйте пожалуйста решение.
Нужно добавить векторный слой в OpenLaers3, который раздаю из GeoServer. В KML и GeoJSON получается слишком большой размер - около 300Мб. Естественно оболочка на JS такое переваривать отказывается. Раздавать слой в картинках/тайлах не подходит, т.к. в WEB требуется работа с полигонами.
Какой подход нужно использовать в подобных случаях? Может быть как-то можно подгружать векторную информацию подобно тайлам - по мере обращения к участкам карты?

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 18 окт 2015, 18:38
Andrey Zhukov
Тут явно проблема с количеством данных.
Прежде чем давать советы по работе с кучей геометрии, надо разобраться, а зачем оно вообще надо. У вас цель какая? Что вы делаете с объектами?

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 18 окт 2015, 18:52
Kot137
Andrey Zhukov писал(а):Тут явно проблема с количеством данных.
Прежде чем давать советы по работе с кучей геометрии, надо разобраться, а зачем оно вообще надо. У вас цель какая? Что вы делаете с объектами?
Есть много полигонов. У каждого етсь небольшое текстовое описание. Задача при нажатии выдавать этот текст. И подсвечивать полигон если курсор над ним.

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 18 окт 2015, 19:35
Kot137
Я поразмыслил, и склоняюсь к рарбивки шейпа/слоя на несколько квадратов(по 10-50Мб в векторе), и пользователю давать работать с одним, при этом выгружать из памяти предыдущий.

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 18 окт 2015, 20:24
Andrey Zhukov
Задача при нажатии выдавать этот текст
WFS не нужен, можно обойтись WMS и GetFeatureInfo
подсвечивать полигон если курсор над ним
А вот тут засада. Варианты: упрощенная геометрия для "подсветки", векторные тайлы, ограничение по BBOX.

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 19 окт 2015, 01:24
Kot137
Andrey Zhukov писал(а):WFS не нужен, можно обойтись WMS и GetFeatureInfo
А как работает GetFeatureInfo с OL? Я в документации OL3 ничего про это не нашел. Или Вы это написали без привязке к OpenLayers?
Andrey Zhukov писал(а):А вот тут засада. Варианты: упрощенная геометрия для "подсветки", векторные тайлы, ограничение по BBOX.
Что значит: 1) Упрощенная геометрия? 2)Векторные тайлы - такое возможно на GeoServer ? 3) Что Вы имели ввиду про BBOX?
Или имеется ввиду самому реализовать что-то вроде векторных тайлов, запрашивая, например, у геосервера теже KML-ки по WMS, ограничивая свой тайл в запросе при помощи BBOX?

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 19 окт 2015, 04:13
ericsson
Kot137 писал(а):
Andrey Zhukov писал(а):WFS не нужен, можно обойтись WMS и GetFeatureInfo
А как работает GetFeatureInfo с OL? Я в документации OL3 ничего про это не нашел.
А вы вообще искали?
Первая ссылка по запросу openlayers 3 getfeatureinfo: http://openlayers.org/en/v3.0.0/example ... -tile.html

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 20 окт 2015, 00:49
Kot137
ericsson писал(а):А вы вообще искали?
Первая ссылка по запросу openlayers 3 getfeatureinfo: http://openlayers.org/en/v3.0.0/example ... -tile.html
Конечно искал. В коде нет GetFeatureInfo. Есть только некая getGetFeatureInfoUrl. В OpenLayers 3 Beginner's Guide тоже ничего толком про это не написанно. И на сайте OL искал...

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 20 окт 2015, 01:47
ericsson
Вы пробовали понять, как работает код этого примера?
GetFeatureInfo - это запрос протокола WMS. Задача OL в данном случае - сгенерировать вам при щелчке на feature в окне карты соответствующий URL запроса к WMS-серверу. А к тому, как вы этим URL-ом распорядитесь, OL не имеет и не должен иметь никакого отношения. Дергайте этот URL сами, получайте ответ, выводите ответ внутри balloon-а, или отдельно где-то (как в примере по ссылке). Повторю - это не связано с задачами OL напрямую.

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 20 окт 2015, 02:27
Kot137
ericsson писал(а):Дергайте этот URL сами, получайте ответ, выводите ответ внутри balloon-а, или отдельно где-то (как в примере по ссылке). Повторю - это не связано с задачами OL напрямую.
Большое спасибо. Теперь принцип понятен. Посути это AJAX запрос, и ответ я как хочу так и использую в JS.

Re: OpenLaers3 + большой векторный слой от GeoServer

Добавлено: 20 окт 2015, 04:13
ericsson
Вы можете сделать этот запрос асинхронно, но даже это не обязательно.