Adicionar uma camada KML ao Google Maps

Através de seu serviço de disponibilização de mapas e imagens de satélite, o Google Maps pode servir de base para personalizações. Utilizando arquivos KML que contenham posição e informações de locais de seu interesse (por exemplo, mostrar em um mapa os endereços das lojas de uma franquia). Vejamos um exemplo de como isso pode ser feito em um site.

kmlex

O Google Maps é um serviço de pesquisa e visualização de mapas e imagens de satélite da Terra gratuito na web. Disponibiliza online rotas, informações de trânsito, vistas panorâmicas de 360° na horizontal (através do Google Street View), e outros produtos. Também é possível gerar um arquivo KML para integração com o Google Earth.

A API Javascript do Google Maps permite incorporar o Google Maps em suas páginas da Web. Atualmente na versão 3, oferece diversos utilitários para adição e manipulação de conteúdo ao mapa por meio de diversos serviços.

Como é um arquivo KML?

KML (Keyhole Markup Language) é uma linguagem baseada em XML. Esse formato de arquivo pode exibir múltiplos tipos de dados geográficos. Arquivos KML são muito frequentemente distribuídos como pacotes KMZ, que são arquivos KML zipados e usam a extensão a .kmz. A documentação do KML pode ser vista nesse link.

O XML (Extensible Markup Language) é uma linguagem de marcação, permitindo a organização dos dados de maneira estruturada através do uso de tags. Todo documento XML, além da tag introdutória, deve conter um único elemento/tag que sirva como raiz para todos os outros elementos do arquivo. Toda tag criada deve ser fechada e os comentários são como no HTML (porém é case sensitive). Em cada tag, podem ser definidos atributos, assim como no HTML.

Veja esse exemplo com um trecho do documento turismo-ac.kml, que colocará no Google Maps alguns pontos de atrações turísticas com descrição, uma linha com trajeto sugerido de caminhada e um polígono fechado contendo o Parque da Maternidade (Rio Branco – AC). A tag “Document” é a raiz e “Placemark” indica a marcação a ser inserida, com outras informações – “name”, “description”, que é o que aparece na etiqueta ao clicar no ponto, “coordinates”, que informa a longitude, latitude a altitude do ponto (respectivamente), etc.

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
	<Document>
		<name>Turismo em Rio Branco - Acre</name>
		<description><![CDATA[Pontos turísticos e sugestão de roteiro para conhecer o centro de Rio Branco - AC]]></description>
		<Folder>
			<name>Atrações turísticas</name>
			<Placemark>
				<styleUrl>#icon-503-FF8277</styleUrl>
				<name>Parque da Maternidade - Entrada principal</name>
				<description><![CDATA[Pórtico de entrada do Parque da Maternidade]]></description>
				<Point>
					<coordinates>-67.80542850494385,-9.971471177365023,0.0</coordinates>
				</Point>
			</Placemark>
<Placemark>
				<styleUrl>#line-000000-4</styleUrl>
				<name>Sugestão de caminhada
</name>
				<description><![CDATA[Traçado sugerido para caminhada no centro de Rio Branco]]></description>
				<LineString>
					<tessellate>0</tessellate>
					<coordinates>-67.8105890750885,-9.972728620244396,0.0 -67.80925869941711,-9.972136883023225,0.0 -67.80962884426117,-9.971196441300142,0.0 -67.8078693151474,-9.97139192660085,0.0 -67.80516028404236,-9.9718410140097,0.0 -67.80539631843567,-9.972142166396036,0.0 -67.80981123447418,-9.97406002506295,0.0 -67.81042814254761,-9.97443514210485,0.0 -67.81050324440002,-9.97487365866258,0.0 -67.81029939651489,-9.97509555838254,0.0 -67.80976831912994,-9.975079708407563,0.0 -67.8092908859253,-9.975893339460484,0.0 -67.80876517295837,-9.97671753507844,0.0 -67.80844867229462,-9.97675451816624,0.0 -67.80668914318085,-9.97595673919745,0.0 -67.80659258365631,-9.976146938334283,0.0 -67.80671060085297,-9.97634770396934,0.0 -67.80756890773773,-9.97671753507844,0.0 -67.80712902545929,-9.977578711605059,0.0 -67.80616879463196,-9.978244404782991,0.0 -67.8086793422699,-9.98033657448304,0.0 -67.80718266963959,-9.97881499785245,0.0 -67.80865252017975,-9.977351530288473,0.0 -67.80866861343384,-9.976907733771025,0.0 -67.80981659889221,-9.974207958595846,0.0 -67.80982196331024,-9.973103738819146,0.0</coordinates>
				</LineString>
			</Placemark>
		</Folder>

<Style id='poly-B7DBAB-4-76'>
			<LineStyle>
				<color>ffABDBB7</color>
				<width>4</width>
			</LineStyle>
			<PolyStyle>
				<color>4CABDBB7</color>
				<fill>1</fill>
				<outline>1</outline>
			</PolyStyle>
		</Style>


<Style id='line-000000-4'>
			<LineStyle>
				<color>ff000000</color>
				<width>4</width>
			</LineStyle>
		</Style>


<Style id='icon-503-FF8277'>
			<IconStyle>
				<color>ff7782FF</color>
				<scale>1.1</scale>
				<Icon>
					<href>http://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png</href>
				</Icon>
			</IconStyle>
		</Style>

	</Document>
</kml>

O mapa incorporado abaixo é o arquivo completo do exemplo acima – para baixar o arquivo, clique no canto direito superior para “visualizar mapa ampliado” e então clique nos “três pontinhos” para abrir um menu cortina com a opção “Fazer o download do arquivo KML”:

Caso altere o arquivo, as vezes demora um certo tempo para atualizar esse arquivo nos computadores do Google depois de realizado o upload.

Criando um arquivo KML

Para criar um arquivo KML, você pode usar Google My Maps. Ao acessar e logar com sua conta Google, existe a opção de realizar um breve tutorial de uso. Após colocar as marcações, linhas, polígonos, etc, clique em opções (os três pontinhos) e escolha “exportar para KML”. Você pode salvar cada camada em separado ou todas juntas. Existe também a opção de compartilhar o mapa diretamente, sem baixar o arquivo. Para isso, clique em compartilhar e salve o link para acesso ao mapa: https://www.google.com/maps/d/viewer?mid=zjp1AqSIAfJk.k8KjW82U9YlM.

Outra opção é criar um arquivo CSV com o nome, descrição, latitude, longitude e altitude (somente lat e lon são obrigatórios) e inserir no site Convert CSV to KML. Depois, pode personalizar inserindo cores nos pontos, que possuem código cujo primeiro par é a opacidade e os seguintes são as intensidades de azul, verde e vermelho, que vai de 00 a ff (0 a 255) – veja no site KML Color uma interface para ajudar a montar os códigos com as cores que desejar.

O post Criando KML com polígono tem um shell script para criar o KML a partir de arquivos com listas de coordenadas. Ainda não é possível ordenar alfabeticamente as marcações no My Maps, mas você pode exportar como um KML e usar o site desse link e ordenar os pontos por nome ou outro campo que a plataforma dispor – depois, basta importar como uma nova camada em um novo mapa.

Exemplo usando a Google Maps API v3

No caso de incluir esse mapa em um site utilizando o Google Maps API v3, segue um código HTML com javascript para inclusão do mapa com a camada KML:

[script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"][/script]
[script]
	var map;
	function initialize() {
		var mapOptions = {
			zoom: 15, center: new google.maps.LatLng(-9.973542,-67.813611), mapTypeId: google.maps.MapTypeId.SATELLITE
		};
		map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
		var geoXml = new google.maps.KmlLayer({url: 'http://monolitonimbus.com.br/turismo-ac.kml'}, {preserveViewport: true}); geoXml.setMap(map);
	}
	google.maps.event.addDomListener(window, 'load', initialize);
[/script]

<div id="map-canvas"></div>

Conversão SHP para KML – limites dos municípios brasileiros

Shapes (SHP) são de arquivos de mapas formados por polígonos geocodificados (ie., suas coordenadas são latitudes e longitudes) que delineiam os contornos de unidades espaciais de interesse. Sendo uma alternativa ao trabalho com KML, existem três arquivos que trabalham conjuntamente: um que possui a extensão .shp (que traz o desenho do mapa propriamente), outro com extensão .shx (que é um indexador de informações, para facilitar buscas) e um terceiro com extensão .dbf (que é um arquivo de banco de dados, trazendo informações e atributos das unidades espaciais – p.ex.: população do município, renda per capita etc.) O que liga esses três arquivos é um ID, único para cada unidade espacial, geralmente chamado de Geocódigo.

A biblioteca GDAL (Geospatial Data Abstraction Library), distribuída pela Open Source Geospatial Foundation sob a licença X/MIT estilo Open Source, traduz formatos de dados geográficos. Para sua utilização, instale-a usando o comando “apt-get install gdal-bin”. A conversão de .shp para KML se dá através do comando “ogr2ogr -f KML arq_final.kml arq_inicial.shp” (mantenha os arquivos .dbf e .shx no mesmo diretório e com o mesmo nome).

Arquivos SHP das malhas municipais e regionais do Brasil podem ser obtidos no geoFTP do IBGE e convertidos para KML. O site do link Limites dos municípios brasileiros também explica como fazer a conversão e disponibiliza o arquivo KML com os limites dos municípios dispostos separadamente.

Instalação do Google Earth no Linux

Execute os seguintes comandos para baixar o arquivo e realizar sua instalação (geralmente são necessários outros pacotes junto, por isso o “apt-get -f”):

# Se o sistema for 32 bits
wget https://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb -O google-earth-stable.deb
# Se o sistema for 64 bits
wget https://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb -O google-earth-stable.deb
# Instalação
sudo dpkg -i google-earth-stable.deb
# Instalando dependências
sudo apt-get install -f -y
# Executando o programa
google-earth-pro&

Fonte: Como instalar o Google Earth no Ubuntu, Debian e derivados. Para instalar uma versão anterior, siga os passos desse link: Google Earth 6.0 no Ubuntu (Viva o Linux).

Outros links

  • Google Map Marker– Incluir marcações no Google Maps para outros usuários verem ao realizarem buscas
  • Convert KML to LatLong Online – Conversor de KML para CSV com coordenadas
  • GmapGIS – Permite desenhar polígonos, linhas, etc diretamente sobre um Google Maps e salvar arquivo KML para download com as coordenadas
  • KML, KMZ Viewer with Drive – Visualizador online de KML/KMZ gratuito sobre o Google Maps, de arquivos locais ou de URLs

3 comments

  1. Me ajudou muuuito !!! Obrigada ! Precisava pegar rotas de ônibus para meu TCC sobre mobilidade, estava fazendo tudo à mão. Essa dica foi sensacional !

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.