Надання зображень у OpenLayers?


11

Моя організація має веб-додаток для відображення глобальних та регіональних даних про клімат, і ми розглядаємо вдосконалення. Наша провідна ідея - створити додаток на основі OpenLayers для відображення кліматичних растров над базовими шарами, такими як OSM або Google Maps. Карта може також включати деякі інші векторні шари, специфічні для додатків, кольорову смугу або інші функції легенди, що описують дані. Наскільки я можу сказати, це все, здається, можливо з OpenLayers.

Одна з вимог до проекту - це можливість експортувати (в ідеалі із веб-додатків) карти якості публікацій (більш-менш) карт. Типовий випадок використання буде приблизно таким:

  1. Користувач, використовуючи базовий шар як орієнтир, орієнтується на цікаву область
  2. Користувач вибирає параметр клімату (наприклад, середня температура для 2040-х років) або набір параметрів
  3. Користувач натискає кнопку "експортувати", а потім завантажує карту хорошої якості, яка включає всі елементи, описані в першому пункті.

Я не зміг знайти нічого в OpenLayers про надання зображення. Хтось знає, чи можливо це? І як ні, то які інші підходи до надання ми могли б використати? Я б припустив, що нам потрібно передати всі параметри карти (bbox, проекція, включені шари тощо) до якогось зовнішнього механізму візуалізації; які двигуни візуалізації з відкритим кодом є там?


Я реалізував експорт у форматі png / pdf та друк карт openlayers на веб-сайті www.mapsdata.co. ви можете зареєструватися та перевірити.
Rayiez

Відповіді:


12

Основні способи відображення гарних друкованих карт із відкритих верств я знаю:

-Геосервер із Geoext

-Карта з Geoext

Обидва рішення покладаються на частину Java (наприклад, http://geoserver.org/display/GEOS/Printing+in+GeoServer або http://www.mapfish.org/doc/print/ )

-Окреслені гравці (див. Офіційний документ 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"



2

Щоб отримати "якість публікації", вам потрібно 300dpi, тому використання карт, які ви переходите до відкритих шарів для відображення екрана, ймовірно, не є початковим.

Вкладка експорту OpenStreetMap використовує OpenLayers для вибору того, що ви хочете експортувати, але потім надає це окремим процесом сервера резервного сервера (власне на вибір декількох). Це, мабуть, такий підхід, який вам доведеться взяти. Ви навряд чи зможете використовувати для цього Карти Google.


Що ж, "якість публікації" швидше означатиме svg або інший векторний формат. І коли я висловлю це в ті терміни, це змушує мене думати, що так, ми, мабуть, захочемо використати Mapnik або щось для того, щоб відтворити базову карту з файла planet.osm. Тоді ми могли б використовувати деяку бібліотеку зображень для накладання інших елементів (кліматичний растр, елементи легенди, атрибути). Ви маєте рацію, що Gmaps, ймовірно, експортеру (з різних технічних та нетехнічних причин). У будь-якому випадку, дякую за всі відповіді.
Гіберт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.