Каковы ограничения GeoServer и OpenLayers при отображении большого количества точек? - PullRequest
1 голос
/ 21 января 2010

Мы пытаемся показать карту с большим количеством точек (от 1000 до 20000 в зависимости от критериев пользователя), используя OpenLayers и GeoServer. Точки хранятся в базе данных PostgreSQL.

В то время как у приложения, похоже, нет проблем с отображением нижнего диапазона, его практический предел составляет около 5000 пунктов. SLD, который мы применяем, также огромен (перечисляя все точки индивидуально по критериям, которые не являются идентификатором функции). При больших числах изображение не гарантируется для возврата, и запрос иногда приводит к сбою GeoServer, что требует сброса службы.

Кто-нибудь знает, возможна ли такая вещь, и если да, то каких-либо советов по настройке?

Мы применили индекс btree к полю, используемому для фильтрации.

1 Ответ

1 голос
/ 10 февраля 2010

Какой тип слоя вы добавляете в OpenLayers? Вы можете использовать слой WMS вместо того, чтобы использовать точки в качестве векторных объектов:

http://dev.openlayers.org/docs/files/OpenLayers/Layer/WMS-js.html

Затем GeoServer сгенерирует изображение точек, и ему нужно будет только передать PNG в формате JPEG в несколько килобайт, а не информацию о геометрии и стилях, которая будет намного больше. Вы бы потеряли некоторые функции на стороне клиента (события при наведении мыши и т. Д.)

Если вы уже делаете это, возможно, существует отдельная проблема. 5000 баллов должно быть хорошо для обработки на сервере.

В качестве альтернативы вы можете переосмыслить, как вы воспроизводите точки. 5000 баллов за один раз звучит так, как будто это может быть очень запутанным. Возможно, использование кругов разных размеров для представления 10, 100, 500 точек и т. Д. Будет проще с точки зрения обработки и визуализации.

...