Pull to refresh

OpenLayers — способы загрузки данных

Reading time3 min
Views5.3K
Пишу новую статью в продолжение предыдущей, так как сразу же получил offline интересный вопрос, а почему собственно не использовать OpenLayers. Действительно, его использовать можно и действительно реализация гибридных картографических представлений еще более упрощается. В новой статье хочу описать несколько способов отображения данных с помощью OpenLayers. Итак, начнем.

Способы отображения пространственных данных с помощью OpenLayers

В статье рассматривается несколько способов визуализации пространственных данных с помощью OpenLayers, плюсы и минусы.


OpenLayers — свободная библиотека JavaScript для отображения картографических данных на веб-страницах с API сходным с API Google Maps/Virtual Earth.

В зависимости от того, как хранятся исходные данные и требований к создаваемому картографическому представлению в веб, возможно несколько подходов к отображению данных на веб-странице. Эта статья иллюстрирует эти подходы и дает примеры программной реализации каждого из них.

Оглавление
1. Прямое отображение данных
2. Отображение слоя WMS
3. Загрузка специализированных данных

1. Прямое отображение данных

Способ самый быстрый в развертывании. Заключается в прямом, без посредников, доступе к пространственным данным. OpenLayers позволяет напрямую показывать ограниченное количество векторных и растровых форматов, что является главным недостатком этого метода. К сожалению, на момент написания статьи невозможно работать напрямую с форматом shape, но можно работать с KML, JSON и некоторыми другими. Вторым большим недостатком является невозможность отображения больших наборов данных.

На следующем примере осуществляется прямое подключение к набору данных (граница Республики Калмыкия) в формате KML, хранящемся на сервере и его визуализация средствами OpenLayers.



image

2. Отображение слоя WMS

На следующем примере осуществляется визуализация данных сервиса WMS, запущенного с помощью MapServer, для сервиса WMS используются данные в формате shape (границы стран). Такой способ отображения данных позволяет работать с большим перечнем векторных форматов, не ограниченным XML/JSON представлением данных, позволяет использовать сложные условные обозначения и осуществлять дополнительную конфигурацию картографического представления данных через редакцию map-файла MapServer. Так же, используя такой подход, кэши фрагментов (tilecache) и грамотно построенную детализацию зависящую от масштаба практически нет ограничений на объемы отображаемых данных.

К недостаткам данного способа относится относительная сложность настройки, если загрузку необходимо производить с Вашего же сервера WMS, которая включается установку и запуск MapServer, конфигурацию сервиса и т.д. С другой стороны, настроенный сервер WMS позволяет использовать свои данные любому клиентском ПО, как через специализированное ПО ГИС, так и через браузер, как в этом примере.




image

3. Загрузка специализированных данных

Еще одной возможностью OpenLayers является загрузка данных предоставляемых через свои API различными картографическими сервисами, например OpenStreetMap, Google Maps и многими другими. Так как реализация их протоколов отлична от спецификаций OGC, они выделены в отдельную группу специализированных данных и управляются с помощью семейства объектов OpenLayers.Layer.Google, OpenLayers.Layer.Yahoo и т.д. Возможности OpenLayers позволяют загружать такие данные совместно со слоями образованными вышеперечисленными способами, создавая гибридные картографические представления. Отображение слоев из разных источников — одна из главных функций OpenLayers, позволяющего быстро настроить любое их количество. В OpenLayers сделать это гораздо легче, чем скажем напрямую показать слой WMS MapServer в Google Maps (подробнее). Расплачиваться за это приходится оверхедом на загрузку самого OpenLayers и невозможностью использоваться оригинальный API, заменяемый API OpenLayers.

Простейший пример гибридного представления может быть реализован следующим скриптом, использующим в качестве базового слоя данные сервиса Google (топокарту и спутниковые снимки) и слой-оверлей WMS полученный так же, как в пункте 2.




image

Обновление 15.01, полная версия статьи более полный разбор кода, работающие примеры, а не картинки.
Tags:
Hubs:
Total votes 6: ↑6 and ↓0+6
Comments4

Articles