Informações úteis para desenvolvedores interessados no GeoNode.
GeoNode é um serviço aberto criado em software de código aberto. Incentivamos você a criar novos aplicativos usando os componentes e recursos que ele fornece. Esta página é um ponto de partida para desenvolvedores 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
Todo o código que executa o GeoNode é aberto e está disponível em http://github.com/GeoNode/geonode/. O localizador de problemas do projeto está em http://github.com/GeoNode/geonode/issues.
O GeoNode está sendo 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 pelos quais ele é construído:
Os dados neste aplicativo são veiculados usando padrões abertos endossados pela ISO e pelo Consórcio Geoespacial Aberto; particularmente, o WMS (Web Map Service) é usado para acessar mapas, já o WFS (Web Feature Service) é utilizado para acessar dados vetoriais e o WCS(Web Coverage Service) é usado para acessar dados rasterizados. O serviço WMC (Web Map Context Documents) é utilizado para compartilhar mapas. Você pode usufruir desses serviços em seus próprios aplicativos por meio de bibliotecas como OpenLayers, GeoTools e OGR (todos estes são softwares 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 ao acesso a coleções de informações descritivas (metadados) sobre dados e serviços.
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.
Para interagir com o CSW do GeoNode, 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://geonode.paranagua.pr.gov.br/catalogue/csw')
textoqualquer = PropertyIsLike('csw:TextoQualquer', 'passaros')')
csw.getrecords2(constraints=[textoqualquer])
print csw.results
print csw.records
Para incluir uma camada de mapa GeoNode em um mapa OpenLayers, primeiro localize o nome dessa camada. Ele encontra-se no campo name
da camada (não no campo title
), na lista de camadas. Neste exemplo, usaremos uma camada em 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" });
Para incluir uma camada de mapa GeoNode em um mapa do Google, inclua o nome da camada 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 } );
Para obter dados dos serviços web GeoNode, use o protocolo WFS. Por exemplo, para obter os limites completos da administração da Nicarágua, use:
http://demo.geonode.org/geoserver/wfs?request=GetFeature&typeName=risk:nicaragua_admin&outputformat=SHAPE-ZIP
Alterando o outputformat para json
, GML2
, GML3
, ou csv
receberá dados nesses formatos. O protocolo WFS também pode disponibilizar consultas mais precisas, especificando uma caixa delimitadora ou vários filtros espaciais e não espaciais com base nos atributos dos dados.
Crie um DataStore e extraia um FeatureType dele, depois execute uma Query. Está tudo documentado na wiki em http://geotools.org/
.
Os serviços web 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 |
Pesquisa de metadados via CSW: | CSW 2.0.2 |
Pesquisa de metadados usando OpenSearch: | OpenSearch 1.0 |
Pesquisa de metadados usando OAI-PMH: | OAI-PMH 2.0 |
Dados Abertos: | data.json |
Tiles em cache via WMTS: | WMTS 1.0.0 |