O Google Maps API permite o desenho de polígonos em seus mapas. Para desenhar um triângulo, conforme exemplo dado pelo Google Maps API, é necessário informar suas três coordenadas geográficas. Entretanto, delimitar um estado, por exemplo, é bem mais complexo, pois este possui milhares de coordenadas geográficas na sua divisa/contorno, estes polígonos podem ser delimitados por suas respectivas coordenadas para que estas demarquem seus limites. Para obter as informações necessárias de cada estado é aconselhável o uso de uma ferramenta de Geo, neste caso utilizaremos o Quantum GIS.
O primeiro passo é obter as coordenadas geográficas do polígono a ser delineado. Para tal, é preciso abrir um arquivo shapefile (.spg) no Quantum GIS.
E em seguida, salvar em formato KML – Keyhole Markup Language para obter as coordenadas geográficas.
As coordenadas geográficas serão copiadas para um bloco de notas em formato tipo texto (.txt).
E seus dados serão tratados devidamente para que possam ser formatados em duas colunas (Long./Lat.).
E assim que for formatado salvar no formato (.csv).
No Open Office Calc, ir em colar especial e abrir o arquivo (.csv) separando os dados por vírgula.
Nossos dados vieram como (Long./ Lat.), mas no Google Maps API teremos que utilizar (Lat./ Long.). Com isso, teremos que reordenar as coordenadas no Open Office Calc para este formato e ainda adicionar o comando abaixo.
E então, exportar para pdf.
No Google Maps API pegar o código-fonte do arquivo “Matrizes de Polígonos” no site: https://google-developers.appspot.com/maps/documentation/javascript/examples/polygon-arrays
Abaixo encontra-se o código-fonte do site supracitado. Neste código-fonte deveremos fazer alterações nas áreas em destaque.
A primeira modificação será feita no arquivo css. Neste caso, mudamos o nome do arquivo, salvamos e alteramos o seu “path” conforme o local onde ele está localizado no seu computador.
A segunda, será feita nas coordenadas que você escolher para dar a posição do seu mapa.
Já a terceira, são todas as coordenadas que delimitam o estado que você escolheu.
Para finalizar, basta clicar no arquivo html. que ele será disponibilizado no Google Maps API.
Muito bom o tutorial! O QGIS ajuda demais em transformar os vetores em um formato “web”. Não sei bem o termo que se dá a isso.
Obrigada Murilo!
É isso mesmo transformar vetores em formato web, acredito eu.
Oi Bruna!
Estou desenvolvendo um sistema que gera polígonos no googlemaps.
O processo de criação foi bem semelhante ao seu, sendo que uso banco de dados mysql com as coordenadas.
Quando vou gerar o código javascript com as coordenadas a aplicação fica muito lenta de acordo com a quantidade no momento de instanciar a classe google.maps.LatLng.
Você por acaso tem alguma dica para melhorar a performance?
Desde já muito obrigado!
Oi Joaquim!
Também estou procurando rs, mas acredito que pode-se criar índices nas tabelas para melhorar a performance. Entretanto, existe um site americano http://www.crimemapping.com/ que mostra o local de crimes com as respectivas informações sobre o caso que também demora um pouco para gerar os dados. Aí fico achando que realmente é normal o programa ter um “delay”.
p.s. Visitei seu site e fiquei muito surpreendida com seu trabalho, parabéns!!! É super interessante!!!!
Oi Bruna, obrigado pela pronta resposta assim como pelo elogio.
Na verdade estou reescrevendo este sistema a fim de aumentar suas possibilidades, o sistema atual gera os polígonos de acordo com os setores censitários do IBGE, o novo sistema que ainda não está no ar, haverá previsão pra gerar polígonos de qualquer área através de agregação dos setores, o que fez com que a tabela de coordenadas aumentasse absurdamente.
A tabela está toda indexada e mesmo assim persiste o problema de desempenho. Para gerar os 92 polígonos correspondentes aos municípios do estado do Rio de Janeiro, o sistema demora cerca de 4 minutos.
Continuo fazendo testes com as querys, que são bem simples inclusive, mas o desempenho continua péssimo!
Um teste que fiz aqui e que melhorou muito o desempenho foi importar um arquivo txt com as coordenadas, gerou 14 polígonos em cerca 2 segundos.
Farei mais alguns testes hoje relacionados à performance do banco e se continuar lento, a solução será criar um script para montar os arquivos txt automaticamente.
Obrigado e até mais.
Olá Bruna
Parabéns pelo artigo.
Fiquei apenas com uma dúvida.
Como você faz para obter as coordenadas geográficas dos estados.
Eu gostaria das coordenadas do Brasil todo, como posso conseguir isso?
Obrigado
Oi João,
Obrigada!
No site http://www.gismaps.com.br/divpol/divpol.htm vc baixa o shp do Brasil e abre no ArcGis ou no QuantumGis e segue os paços do meu tutorial.
Pingback: Visualização de Imagens no Google Maps | GeoBrainstorms
Pessoal, muito bom este Post, mas gostaria de saber se existe a possibilidade ou se possui algum exemplo de como saber se um determinado endereço está dentro ou fora da área do polígono?
Oi Ricardo,
Obrigada!
Então, o meu post não dá a possibilidade de achar endereços, mas o Joaquim Neto tem um blog bem bacana a respeito disso http://www.pesquisasocial.com/novomorarcarioca/.
Espero ter ajudado!
Oi Ricardo, oi Bruna, tudo bem com vocês?
Então, eu nunca precisei trabalhar com endereços, mas podemos pensar em alguma solução, na minha coleção de exemplos, tenho um que possa ajudar a pensar, (https://google-developers.appspot.com/maps/articles/mvcfun/twittersearch?hl=pt-BR).
Este exemplo resgata um endereço de um determinado ponto, uma coordenada x/y, agora se pensarmos num polígono, que já é formado por algumas coordenadas, além de possuir inúmeras coordenadas no seu interior a coisa complica um pouco.
Sinceramente não acredito que você conseguira de cara um script que te retorne todos os endereços, eu começaria pesquisando algo pra me retornar todas as coordenadas que estão dentro do polígono e depois, tendo como base o exemplo que te passei, buscar os endereços.
Joaquim, vc já ouviu falar na API chamada Openlayers? É uma API javascript que segue os padrões da OGC e com isso vc ganha em interoperabilidade das informações geoespaciais entre outras coisas. Acho que já tem um post da Fernanda Martins aqui mesmo nesse blog que le um geojson a partir do openlayers. Aconselho tb a ler sobre banco de dados geograficos como por exemplo o PostGIS. Com ele vc tem inúmeras funções espaciais pré implementadas para poder usar. Abraço…
PS: Passei pelo blog por acaso, é sempre bom saber que os profissionais de geotecnologias estão crescendo cada vez mais. Parabéns a todos pela iniciativa.
Obrigado pela dica Gledson vou dar uma lida no material que você indicou.
Eu já li um pouco sobre o PostGis, nós optamos por utilizar o googlemaps por uma questão de custo.
CARA! muito legal, parabéns pelo post ! muito bom!
Obrigada Erich
Pingback: 10 Excelentes Blogs Brasileiros sobre Geoprocessamento | Anderson Medeiros
Pingback: KML no MapQuest | GeoBrainstorms
Oi Bruna! Tudo bem?
Estive fazendo umas alterações no sistema de mapas e por acaso me lembrei de um dos posts daqui.
Embora não seja exatamente o que tenha sido perguntado, mas eu precisei de um script que fosse capaz de informar se uma determinada coordenada estava dentro de um polígono, aqui no caso o Ricardo queria saber o endereço… (Esse detalhe que eu não lembrava bem…)
Enfim, de qualquer forma, posso disponibilizar o script.
Ola, eu tenho os poligonos de todos as cidades brasileiras só que no arquivo que possuo não tenho a cidade vinculada. Ex: a que cidade pertence um poligono. Tenho a localização das cidades. Alguem possui um scrip que eu poderia ler a localização da cidade e achar o poligono correspondente, ou ler o poligono e ver q cidade se ocaliza dentro dele ? abraço
Olá Jandir, fiz um exemplo parecido com o seu problema e usei somente os exemplos de javascript do próprio Google Maps API. Como você já possui os polígonos, é preciso então achar as coordenadas geográficas (lat/long) de cada cidade. Eu fiz manualmente, uma por uma com o próprio buscador da API, e inseri no próprio código da página com o seu respectivo ícone marcador de maneira que ao buscar o nome da cidade no próprio buscador ele irá indicar a cidade, o seu polígono, que foi inserido na própria codificação da API e qualquer outra informação inserida para serem exibidas em uma aplicação. Obrigado pela sua participação. Abraço,
Olá Joaquim, voce consegue enviar o script capaz de informar se uma determinada coordenada estava dentro de um polígono ? manda para jandir@sesiom.com.br
Obrigado
Como fazer o calculo de area de um poligono no google maps via codigo em javascript?
Pingback: Shapefile no Elasticsearch | GeoBrainStorms
OLÁ, peço ajuda , sou muito leiga no assunto geoprocessamento,tenho utilizado o satscan e o google earth em uma pesquisa para apresentação de cluster endêmicos para Dengue, estou na tentativa de mudar o desenho do trabalho para regiões específicas , bairros dentro de municípios, tenho as coordenadas geográficas dos casos, mas não sei como poderia delimitar um bairro com suas coordenadas geográficas e as que estão dentro dessa área específica , para separar as coordenadas que possuo por bairros e assim formas cluster mais específicos.Ficarei muito grata se
alguém puder me ajudar , me indicando algum programa.
Att. ELIS
Pingback: Delimitação de um Mapa no Android | GeoBrainStorms
Pingback: Delimitação de um Mapa com Swift | GeoBrainStorms