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. Para testar o exemplo completo, veja o mapa incorporado abaixo:

Caso altere o arquivo, as vezes demora um certo tempo para atualizar o arquivo nos computadores do Google.

<?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>

Criando um arquivo KML

Para criar um arquivo KML (como o acima), 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.

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:




<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.

Também existe a opção de converter online através desse link, que também converte UTM para lat/lon, etc.

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

Compartilhe o link desse texto, mas se for copiar algum trecho, cite a fonte. Valorize nosso trabalho.
Mais informações na licença de uso do site.

Um Pingback/Trackback