Полезная информация для разработчиков, интересующихся GeoNode.

GeoNode — это открытый сервис, построенный на основе программного обеспечения с открытым исходным кодом. Мы поощряем создание новых приложений с использованием компонентов и ресурсов, которые он предоставляет. Эта страница является отправной точкой для разработчиков, заинтересованных в полном использовании GeoNode. Она также включает ссылки на исходный код проекта, чтобы каждый мог собрать и настроить собственный GeoNode.

Программное обеспечение GeoNode

Весь код, на котором работает GeoNode, является открытым. Код доступен по адресу http://github.com/GeoNode/geonode/. Трекер задач проекта находится по адресу http://github.com/GeoNode/geonode/issues.

GeoNode построен с использованием нескольких проектов с открытым исходным кодом, каждый из которых имеет своё сообщество. Если вы хотите внести новые функции в GeoNode, мы рекомендуем делать это, внося вклад в один из проектов, на которых он построен:

  • GeoServer — сервер пространственных данных, основанный на стандартах
  • GeoWebCache — механизм кэширования WMS-тайлов
  • OpenLayers — чистая JavaScript-библиотека, обеспечивающая работу карт GeoExt
  • pycsw — сервер каталога метаданных CSW, OpenSearch и OAI-PMH

Что такое OGC-сервисы?

Данные в этом приложении предоставляются с использованием открытых стандартов, поддерживаемых ISO и Open Geospatial Consortium; в частности, WMS (Web Map Service) используется для доступа к картам, WFS (Web Feature Service) — для доступа к векторным данным, а WCS (Web Coverage Service) — для доступа к растровым данным. WMC (Web Map Context Documents) используется для обмена картами. Вы можете использовать эти сервисы в своих приложениях, применяя такие библиотеки, как OpenLayers, GeoTools и OGR (все они являются программным обеспечением с открытым исходным кодом и доступны бесплатно). Кроме того, CSW (Catalog Service for the Web) поддерживает доступ к коллекциям описательной информации (метаданных) о данных и сервисах.

Что такое GeoWebCache?

GeoWebCache предоставляет тайлы карт, совместимые с рядом картографических движков, включая Google Maps, Bing Maps и OpenLayers. Все данные, размещённые в GeoNode, также доступны через GeoWebCache. GeoWebCache улучшает WMS за счёт кэширования данных и более быстрой работы карт.

Пример кода CSW

Для взаимодействия с CSW GeoNode вы можете использовать любой CSW-клиент (QGIS MetaSearch, GRASS и т. д.). Следующий пример иллюстрирует простую команду с использованием Python-библиотеки OWSLib:

from owslib.csw import CatalogueServiceWeb

from owslib.fes import PropertyIsLike

csw = CatalogueServiceWeb('https://morainelakes.kz/catalogue/csw')

anytext = PropertyIsLike('csw:AnyText', 'birds')')

csw.getrecords2(constraints=[anytext])

print csw.results

print csw.records

Пример кода OpenLayers

Чтобы включить слой карты GeoNode в карту OpenLayers, сначала найдите имя этого слоя. Оно находится в поле name (не title) в списке слоёв. В этом примере мы используем фоновый слой политических границ Никарагуа, имя которого risk:nicaragua_admin. Затем создайте экземпляр OpenLayers.Layer.WMS:

var geonodeLayer = new OpenLayers.Layer.WMS("GeoNode Risk Data", "http://demo.geonode.org/geoserver/wms",{ layers: "risk:nicaragua_admin" });

Пример кода Google Maps

Чтобы включить слой карты GeoNode в Google Map, включите имя набора данных в шаблон URL.

var tilelayer = new GTileLayer(null, null, null, {tileUrlTemplate: 'http://demo.geonode.org/geoserver/gwc/service/gmaps?layers=risk:nicaragua_admin&zoom={Z}&x={X}&y={Y}', isPng:true, opacity:0.5 } );

Shapefile/GeoJSON/GML вывод

Чтобы получить данные из веб-сервисов GeoNode, используйте протокол WFS. Например, чтобы получить границы Никарагуа:

http://demo.geonode.org/geoserver/wfs?request=GetFeature&typeName=risk:nicaragua_admin&outputformat=SHAPE-ZIP

Изменение формата вывода на json, GML2, GML3 или csv позволит получить данные в этих форматах. Протокол WFS также поддерживает более точные запросы с указанием ограничивающего прямоугольника или различных пространственных и не пространственных фильтров на основе атрибутов данных.

Пример кода GeoTools

Создайте DataStore и извлеките из него FeatureType, затем выполните запрос (Query). Всё это задокументировано на вики по адресу http://geotools.org/.

Веб-сервисы GeoNode

Веб-сервисы GeoNode доступны по следующим URL:

Динамические тайлы через WMS: WMS 1.1.1
Векторные данные через WFS: WFS 1.1.0
Растровые данные покрытий через WCS: WCS 1.1.1
Поиск метаданных через CSW: CSW 2.0.2
Поиск метаданных через OpenSearch: OpenSearch 1.0
Поиск метаданных через OAI-PMH: OAI-PMH 2.0
Кешированные тайлы через WMTS: WMTS 1.0.0