Полезная информация для разработчиков, интересующихся GeoNode.
GeoNode — это открытый сервис, построенный на основе программного обеспечения с открытым исходным кодом. Мы поощряем создание новых приложений с использованием компонентов и ресурсов, которые он предоставляет. Эта страница является отправной точкой для разработчиков, заинтересованных в полном использовании GeoNode. Она также включает ссылки на исходный код проекта, чтобы каждый мог собрать и настроить собственный GeoNode.
Весь код, на котором работает GeoNode, является открытым. Код доступен по адресу http://github.com/GeoNode/geonode/. Трекер задач проекта находится по адресу http://github.com/GeoNode/geonode/issues.
GeoNode построен с использованием нескольких проектов с открытым исходным кодом, каждый из которых имеет своё сообщество. Если вы хотите внести новые функции в GeoNode, мы рекомендуем делать это, внося вклад в один из проектов, на которых он построен:
Данные в этом приложении предоставляются с использованием открытых стандартов, поддерживаемых 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 предоставляет тайлы карт, совместимые с рядом картографических движков, включая Google Maps, Bing Maps и OpenLayers. Все данные, размещённые в GeoNode, также доступны через GeoWebCache. GeoWebCache улучшает WMS за счёт кэширования данных и более быстрой работы карт.
Для взаимодействия с 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
Чтобы включить слой карты 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" });
Чтобы включить слой карты 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 } );
Чтобы получить данные из веб-сервисов GeoNode, используйте протокол WFS. Например, чтобы получить границы Никарагуа:
http://demo.geonode.org/geoserver/wfs?request=GetFeature&typeName=risk:nicaragua_admin&outputformat=SHAPE-ZIP
Изменение формата вывода на json, GML2, GML3 или csv позволит получить данные в этих форматах. Протокол WFS также поддерживает более точные запросы с указанием ограничивающего прямоугольника или различных пространственных и не пространственных фильтров на основе атрибутов данных.
Создайте DataStore и извлеките из него FeatureType, затем выполните запрос (Query). Всё это задокументировано на вики по адресу http://geotools.org/.
Веб-сервисы 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 |