Criando KML com polígono

O KML (Keyhole Markup Language) é baseado no XML (Extensible Markup Language): uma linguagem de marcação que permite a organização dos dados de maneira estruturada através do uso de tags. Um arquivo nesse formato pode incluir posição e informações de locais a serem sobrepostas em um mapa (como o Google Maps).

Veja um exemplo de uma página HTML com código JavaScript para exibir um arquivo KML sobre um Google Maps, o arquivo KML em si e um shell script para criar esse KML a partir de uma lista de coordenadas.

1) Página de exibição

Segue o arquivo “teste_kml.php” contendo os códigos HTML e JavaScript para exibição do Google Maps centrado nas coordenadas indicadas e usando o arquivo KML linkado. A respeito do estilo, sempre defina a altura do mapa explicitamente para definir o tamanho do elemento div que contém o mapa. Opcionalmente, pode fazer com que a página de exemplo preencha a janela.

Obs.: a tag “viewport” é usada para uma página responsiva. O parâmetro “initial-scale=1” garante que, após a abertura, o layout será exibido corretamente em escala 1:1 – nenhum zoom será aplicado. Veja mais no post Dica Rápida: Não Esqueça da Meta Tag de Viewport.

2) Arquivo KML

O exemplo anterior e o que segue foram retirados deste link do Google Maps API e usa linha. Segue uma versão adaptada para um polígono:

Além do cabeçalho (com nome e descrição), existe uma tag de estilo (para o interior do polígono e sua linha de contorno) e outra tag para o polígono em si (nome, descrição e pontos com latitude, longitude e altitude.

A respeito das cores, elas são indicadas como oito caracteres em hexadecimal em ABGR:

  • 2 dígitos para camada de transparência (Alpha): FF é 100%, 80 é 50% e 00 é 0% (veja tabela completa no post 8-digit hex codes)
  • 2 dígitos para o azul (Blue)
  • 2 dígitos para o verde (Green)
  • 2 dígitos para o vermelho (Red)

Veja esse exemplo de uma cor em RGB: 11ffcc. Agora em ABGR: ffccff11 (“ff” para cor sólida sem transparência). A palheta de cores Pegar cores hexadecimal pode ser vista no link da W3schools.

3) Shell script de criação do KML

O script “cria_kml.sh” cria o arquivo “poligono.kml”, no qual serão impressas as tags necessárias. Cada arquivo contém o conjunto de um polígono, sendo o resultado final um conjunto de polígonos identificados pela numeração de cada arquivo de coordenadas.

Também é possível imprimir cada polígono em arquivos separados, fazendo algumas adaptações no código acima – basicamente, colocar tudo dentro do loop para cada arquivo que contém as coordenadas e personalizar o nome do arquivo de saída.

Veja também o outro post sobre como Adicionar uma camada KML ao Google Maps, que fala sobre SHP (shape file), Google Earth e outros truques.