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.
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:
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 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 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
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" });
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 } );
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.
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 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 |