Openlayer работает очень медленно при использовании WKT Multipolygon с большим количеством точек

Я показываю границы регионов Кипра, используя открытые слои с векторным слоем, я получаю координаты из шейп-файла, который имеет много точек, например, некоторые регионы могут иметь мультиполигон с общим числом точек: 30000.

Это очень медленно в firefox / IE, а в firefox показывает ошибку не отвечающего скрипта. Только хром работает хорошо. Как лучше всего заставить его работать быстрее и плавнее?

Я прочитал, что один ответ заключается в создании сервера WMS с MapServer для создания плиток изображений вместо прямого использования OpenLayers, но я не могу реализовать это решение, потому что я хочу динамически изменять стиль слоя для различных функций в векторном слое, т.е. показывать разные цвета области в зависимости от динамического значения.

Как я могу преодолеть эту проблему. Любые идеи будут высоко оценены.


person Jetson John    schedule 17.09.2013    source источник


Ответы (3)


Я думаю, что WMS + TileCache поможет повысить скорость. Вы упомянули, что хотите динамически изменять стиль слоя, я думаю, что есть также какое-то решение для этого с помощью WMS, пожалуйста, проверьте:

https://gis.stackexchange.com/questions/64113/how-to-dynamically-change-sld-style-of-wms-layer-being-served-by-geoserver-from

и http://openlayers.org/dev/examples/sld.html

person JSC    schedule 26.09.2013

Я бы сказал, что GeoJSON может повысить вашу производительность в Firefox. На мой взгляд, WMS является лучшим, и если вы работаете с картографическим сервером, у вас не будет проблем с выполнением того, что вы хотите, геосервер также может вам помочь, но для динамических изменений я бы сказал, что вам понадобится GeoExt.

Надеюсь это поможет,

person Gery    schedule 18.09.2013

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

person kjelderg    schedule 18.10.2013