В моей организации есть веб-приложение для отображения глобальных и региональных климатических данных, и мы рассматриваем возможность его улучшения. Наша главная идея - создать приложение на основе OpenLayers для отображения климатических растров на базовых слоях, таких как OSM или Google Maps. Карта также может включать в себя некоторые другие специфичные для приложения векторные слои и цветную полосу или другие элементы легенды, описывающие данные. Насколько я могу судить, все это кажется выполнимым с OpenLayers.
Однако одним из требований к проекту является возможность экспортировать (в идеале из веб-приложения) карты качества публикации (более или менее). Типичный вариант использования будет примерно таким:
- Пользователь, используя базовый слой в качестве руководства, перемещается к своей области интересов
- Пользователь выбирает параметр климата (например, средняя температура для 2040-х годов) или набор параметров
- Пользователь нажимает кнопку «Экспорт», а затем загружает карту хорошего качества, которая включает в себя все элементы, описанные в первом абзаце.
Я не смог найти ничего в OpenLayers о рендеринге изображения. Кто-нибудь знает, возможно ли это? А если нет, то какие другие подходы к рендерингу мы могли бы использовать? Я бы предположил, что нам нужно будет передать все параметры карты (bbox, проекция, включенные слои и т. Д.) В какой-либо внешний механизм рендеринга; какие движки рендеринга с открытым исходным кодом существуют?
источник
Ответы:
Основные способы отображения красивых печатных карт из открытых слоев, которых я знаю:
-Гео-сервер с Geoext
-Мапфиш с Geoext
Оба решения основаны на Java-части (например, http://geoserver.org/display/GEOS/Printing+in+GeoServer или http://www.mapfish.org/doc/print/ ).
-Openlayers автономно (см. Официальный документ http://trac.openlayers.org/wiki/Printing )
Совсем недавно появилась технология визуализации изображения с помощью PhantomJS (программное обеспечение, имитирующее браузер из командной строки) http://acuriousanimal.com/blog/2012/09/17/creating-static-maps-in-openlayers-using-phantomjs/
Некоторые недавние библиотеки используют возможности рендеринга Canvas браузера, чтобы «поймать» изображение, как этот пример OpenLayers 3 или этот Leaflet
источник
Подумайте , вы должны смотреть в Geoserver создать WFS или WMS или услугу WMST http://geoserver.org/display/GEOS/What+is+Geoserver
Затем Openlayers может анализировать сервис Geoserver.
http://openlayers.org/dev/examples/getfeature-wfs.html
WMTS (служба листов веб-карты) http://openlayers.org/dev/examples/wmts.html
источник
Чтобы получить «качество публикации», вам нужно 300 точек на дюйм, поэтому использование карт, которые вы передаете, чтобы открыть слои для рендеринга экрана, вероятно, не для начала.
Вкладка экспорта OpenStreetMap использует OpenLayers для выбора того, что вы хотите экспортировать, но затем отображает его с помощью отдельного процесса внутреннего сервера (на самом деле на выбор несколько). Это, вероятно, подход, который вы должны будете использовать. Вы вряд ли сможете использовать Google Maps для этого.
источник