GeoSpace PHP class — визуализация геоданных

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

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

Наиболее распространенный способ визуализации геоданных в веб-интерфейсе — использование программного интерфейса открытых картографических сервисов (Google Maps, Яндекс.Карты, Open Street Maps и др.). Однако данный способ имеет целый ряд недостатков. Прежде всего, работа веб-интерфейса в данном случае зависит от сторонних сервисов, их API и его изменений. Визуализация данных связана с передачей их третьему лицу (стороннему сервису), что также не всегда приемлемо. Кроме того, невозможно использование собственной топографической основы для визуализации данных. В связи с этим в данном проекте было принято решение отказаться от использования таких сервисов, предоставляя геоданные пользователю в прямом виде и оставляя их визуализацию на его усмотрение.

Тем не менее, вопрос о визуализации геоданных в системе не был полностью закрыт. Как альтернатива указаннному выше подходу рассматривалось динамическое создание графических файлов карт на статической топооснове. Итогом разработки такого метода стал PHP класс GeoSpace, предназначенный для визуализации геоданных в формате KML (Keyhole Markup Language) на основе статических растровых карт.

Возможности и механизм работы класса:

  • Класс наносит на растровое изображение карты массив данных топографических объектов: точек, линий и полигонов. Для каждого объекта указываются его тип и координаты в соответствии со стандартом KML (что позволяет легко формировать такой массив из kml-файла или подготовленных для него данных).
  • Карта строится с учетом проекции изображенного геопространства. В данный момент класс работает с картами в проекции Меркатора (эллиптической), могут быть добавлены функции для работы с иными проекциями.
  • Основной метод (функция) класса gsp_drowmap включает в себя: нанесение произвольной надписи на карту; отрисовку топообъектов линиями и точками произвольного цвета и размера; отображение линий и полигонов в зависимости от их размера относительно карты и указанного пользователем минимального размера топообъекта (точки) — либо в виде точки, либо в виде линий.

Исходный текст класса и пример его использования доступны здесь: скачать PHP class GeoSpace. Как и KGBase, данный класс распространяется под свободной лицензией GPL v.3. В ближайшее время класс будет встроен в интерфейс представленных здесь баз данных биоразнообразия.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *