Informações úteis para programadores interessados no GeoNode.

O GeoNodeé um serviço aberto criado em software de código aberto. Incentivamos a criar novas aplicações usando os componentes e recursos que ele fornece. Esta página é um ponto de partida para programadores interessados em tirar o máximo proveito do GeoNode. Ele também inclui links para o código-fonte do projeto, para que qualquer pessoa possa criar e personalizar seu próprio GeoNode.

Software GeoNode

Todo o código executado pelo GeoNode é de código aberto. O código está disponível em http://github.com/GeoNode/geonode/ . O rastreio de problemas do projeto é feito em http://github.com/GeoNode/geonode/issues .

O GeoNode é construído usando vários projetos de código aberto, cada um com sua própria comunidade. Se você estiver interessado em contribuir com novos recursos para o GeoNode, recomendamos que você o faça contribuindo para um dos projetos nos quais ele é construído:

  • GeoServer - Servidor baseado em padrões para informações geoespaciais
  • GeoWebCache - Mecanismo de cache para mosaicos WMS
  • OpenLayers - Biblioteca JavaScript pura que alimenta os mapas do GeoExt
  • pycsw - CSW, Servidor de catálogo de metadados OpenSearch e OAI-PMH

O que são serviços OGC?

Os dados desta aplicação estão veiculados usando padrões abertos endossados pela ISO e pelo Open Geospatial Consortium ; em particular, o WMS (Web Map Service) é usado para aceder mapas, o WFS (Web Feature Service) é usado para aceder dados vetoriais e o WCS (Web Coverage Service) é usado para aceder a dados rasterizados. O WMC (Web Map Context Documents) é usado para partilhar mapas. Pode usar estes serviços nas suas aplicações usando bibliotecas como OpenLayers, GeoTools e OGR (todos eles software de código aberto e disponíveis a custo zero). Além disso, o CSW (Serviço de Catálogo para a Web) oferece suporte de acesso a coleções de informações descritivas (metadados) sobre dados e serviços.

O que é o GeoWebCache?

O GeoWebCache fornece mosaicos compatíveis com vários mecanismos de mapeamento, incluindo Google Maps, Bing Maps e OpenLayers. Todos os dados hospedados pelo GeoNode também estão disponíveis no GeoWebCache. O GeoWebCache aprimora o WMS, armazenando em cache os dados e fornecendo mapas mais responsivos.

Código Exemplo CSW

Para interagir com o GeoNode CSW, você pode usar qualquer cliente CSW (QGIS MetaSearch, GRASS, etc.). O exemplo a seguir ilustra uma chamada simples usando o pacote OWSLib Python:

from owslib.csw import CatalogueServiceWeb

from owslib.fes import PropertyIsLike

csw = CatalogueServiceWeb('https://divgmwebgis.ipma.pt/catalogue/csw')

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

csw.getrecords2(constraints=[anytext])

print csw.results

print csw.records

Código Exemplo OpenLayers

Para incluir uma camada de mapa GeoNode num mapa OpenLayers, primeiro localize o nome dessa camada. Isso é encontrado no campo name da camada (não title ) da lista de camadas. Neste exemplo, usaremos a camada de segundo plano dos limites políticos da Nicarágua, cujo nome é risk: nicaragua_admin . Em seguida, crie uma instância do OpenLayers.Layer.WMS:

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

Código exemplo Google Maps

Para incluir uma camada do mapa GeoNode no Google Map, inclua o nome da layer no template 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 } );

Ficheiro de Saída Shapefile/GeoJSON/GML

Para obter dados dos serviços web GeoNode, use o protocolo WFS. Por exemplo, para obter os limites completos do administrador da Nicarágua, use:

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

Alterando o formato de saída para json , GML2 , GML3 ou csv obterá dados nesses formatos. O protocolo WFS também pode lidar com consultas mais precisas, especificando uma caixa delimitadora ou vários filtros espaciais e não espaciais com base nos atributos dos dados.

Código Exemplo GeoTools

Crie um DataStore e extraía-a um FeatureType dele, de seguida corra a query. Está tudo documentado no wiki em http://geotools.org/.

Web Services do GeoNode

Web Services do GeoNode estão disponíveis a partir das seguintes URLs:

Tiles dinâmicos via WMS: WMS 1.1.1
Dados vetoriais via WFS: WFS 1.1.0
Dados raster via WCS: WCS 1.1.1
Busca de metadados via CSW: CSW 2.0.2
Pesquisa de metadados através do OpenSearch: OpenSearch 1.0
Pesquisa de metadados através do OAI-PMH: OAI-PMH 2.0
Tiles cacheados via WMTS: WMTS 1.0.0