O OpenStreetMap é uma plataforma aberta de serviços de mapas, para desenvolvimento de aplicativos baseados em geoprogramação. O serviço de mapa apesar de ser aberto, o uso do servidor específico da ferramenta pode depender de licenciamento; por isso existe a possibilidade de criação de um servidor de mapas próprio baseado na plataforma, não necessitando assim necessariamente de um licenciamento específico.
O OpenStreetMap possui grande parte dos serviços de mapas similares aos serviços de
mapas proprietários, como a geocodificação, que consiste em obter as coordenadas geográficas a partir de um nome específico seja de rua, bairro ou cidade, e a geocodificação reversa, que consiste em obter um nome específico de rua, bairro ou cidade a partir das coordenadas geográficas. O serviço de geolocalização também está presente na plataforma o que possibilita a obtenção da localização real de um usuário em tempo real, além de diversos outros serviços como a inserção de polígonos vetoriais, imagens, acessos a serviços WMS, WFS, Web Services entre outros serviços.
Por ser dirigido a geoprogramação, o OpenStreetMap possibilita a criação de
aplicativos baseados em diversas linguagens de programação como Java, Ruby, PHP, .Net,
Android, JavaScript entre outras. E em cada linguagem de programação, os seus devidos
frameworks para acesso a base de dados de diversos tipos como relacional, Web Services e Data Warehouses, segurança, distribuição de dados e estruturas para Web Design; neste ponto destacam-se os mapas livres e proprietários. Atualmente os serviços de mapas abertos, não possuem uma base de fundo baseada em satélites como o Google Maps, o Bing Maps e o ArcGIS Maps, mas os mapas abertos do OpenStreetMap, no formato vetorial, são ótimos e atualizados constantemente.
Os serviços de informação de dados de geolocalização, do OpenStreetMap, podem ser
fornecidos pelo Nominatim que fornece os dados de geolocalização através de Web Services JSON ou XML, para serem consumidos pelos diversos aplicativos baseados em mapas.
Assim como os serviços de mapas proprietários, o OpenStreetMap possui não só uma,
mas diversas APIs de programação para Web Design e front end. Algumas com códigos
abertos como o Leaflet e o OpenLayers, e outras que necessitam de licenciamento como o
MapQuest e o MapBox; estes baseados no JavaScript como o Google Maps, o Bing Maps e o ArcGIS Maps. Algumas delas possuem APIs para outras linguagens de programação.
Há no mercado, muitos aplicativos robustos disponíveis e em desenvolvimento que usam
frameworks muito avançados como o GISGRAPHY baseado na linguagem de programação Java e utiliza os frameworks Spring, o Hibernate e o Solr, que é um framework de busca; e o PHOTON ,este usa o Spring e o Elastic Search que é um poderoso framework de busca com diversos recursos específicos para a geoprogramação. Os dois estruturados com o MAVEN e de plataformas abertas.
Por serem poderosos e robustos, esses frameworks de programação, usam o que há de
mais avançado em termos de tecnologia da informação como o Spring e o Elastic Search; e como já estão em níveis avançados de desenvolvimento, requerem um certo esforço para entender e explorar os vários recursos disponíveis para serem usados em aplicativos de geotecnologias.
O Leaflet é uma biblioteca de mapas Open Source baseada na linguagem JavaScript
que trabalha a parte visual do OpenStreetMap e outros. Com esta biblioteca é possível a
manipulação do front end dos mapas possibilitando assim a inserção de ícones, desenhos, interação, inserção de objetos, desenhos, polígonos vetoriais e imagens entre outras funções.
Para descrever realmente o que é o OpenStreetMap, é mais interessante fazer um
exemplo para poder explorar melhor esse magnífico serviço de mapas para geotecnologias. No exemplo testado, foi usado a linguagem de programação Java, assim como no GISGRAPHY e no PHOTON, uma IDE – ferramenta específica de programação Java o NET BEANS, o Banco de dados POSTGRESQL e as linguagens de programação para Web Design como HTML, CSS, JavaScript, o Leaflet e o Nominatim. Todos baseados em plataformas livres e para o Leaflet foi usado uma biblioteca extra de busca, o Leaflet Search de Stefano Cudini disponível em https://github.com/stefanocudini/leaflet-search.
O primeiro passo foi fazer o acesso à base de dados PostgreSQL e trazer os dados
geolocalizados para a plataforma Leaflet Control Search…
Esse serviço permite fazer uma busca personalizada somente aos dados provenientes da
base de dados…
E ir até o local georreferenciado usando o controle de zoom para isso.
Baseado na estrutura inicial do projeto, foi possível a criação de um mecanismo de
busca simples com um Java Server Pages e um Servlet, que consumiu o serviço de dados
geolocalizados do OpenStreetMap, o Nominatim, e possibilitou a busca de qualquer dados geolocalizados por endereço, bairro ou cidade além do acesso a base de dados do PostgreSQL.
Além de pontos georreferenciados, é possível a inserção de imagens vetoriais e outros
objetos com a biblioteca Leaflet através de WMS – Web Map Service, WFS – Web Feature
Service, GeoJSON entre outros serviços e bibliotecas de mapas.
Essa pesquisa e testes com os serviços de plataformas livres, possibilitou a descoberta de
quão avançados estão as geotecnologias baseadas no OpenStreetMap, e que usam o que há de mais avançado no mundo da programação e desenvolvimento de softwares.
Para saber mais:
https://nominatim.openstreetmap.org/