Criar KML de Pontos no ArcGIS

Tempo de leitura: 6 min

Um amigo que também anda nestas lides geoespaciais, pediu-me ajuda para perceber a melhor forma de passar um shapefile de pontos para KML, de preferência de forma a que os pontos tivessem “balões” de informação e com símbolos minimamente aceitáveis.

O shapefile contém pontos com alguns atributos em português, como Nome, Categoria, e outros. O aspecto inicial no ArcMap é este:

image

E o objectivo é chegarmos ao Google Earth com este aspecto:

image

Filtrar os dados

Como apenas alguns pontos interessam passar ao KML, vamos definir uma expressão de pesquisa. Nas propriedades do layer, no separador “Definition Query” construimos a query. Neste exemplo, queremos apenas os pontos cuja Categoria é igual a “Hotelaria”.

image

Ficamos assim com menos pontos a converter. É claro que este passo é opcional…

image

Sistema de Coordenadas

Os dados num ficheiro KML devem estar no sistema de coordenadas WGS84, indicando as coordenadas em graus de latitude e longitude.

Em vez de projectar o nosso shapefile, vamos em vez disso configurar a Data Frame para usar o sistema de coordenadas WGS84. O ArcMap permite definir também a transformação de Datum, e com isso ao exportar dados podemos optar por usar o sistema de coordenadas original ou usar o que está activo na Data Frame. Esta abordagem tem a vantagem de reduzir o n.º de ficheiros intermédios que criamos em disco.

Assim, para definir o sistema de coordenadas, basta abrir as propriedades da Data Frame (botão direito em “Layers” na árvore de temas, e clicar na opção “Properties“), e abrir o separador “Coordinate System”.

Aqui, selecionar na parte inferior da janela a opção Predefined -> Geographic Coordinate Systems -> World -> WGS 84.

Temos ainda de selecionar a transformação de datum que queremos usar. Na parte superior da mesma janela, clicamos no botão “Transformations“, e na janela que abre selecionamos na última opção em baixo, a transformação “Datum_73_To_WGS_1984_4“. Esta transformação usa os parâmetros de nível nacional publicados pelo IGP.

image

O resultado desta definição é obtermos um mapa já em coordenadas WGS84, que podemos ver no ArcMap na barra inferior onde são mostradas as coordenadas do cursor.

image

Usar simbologia apropriada

Uma das coisas a que a Google nos habituou foi a vermos uma simbologia mais imaginativa, usando icones grandes e coloridos para representar pontos.

Em geral, os técnicos de SIG não usam este tipo de simbologia, mas o ArcMap inclui um conjunto de símbolos deste género que poderemos usar. Basta ligar o estilo “ArcGIS_Explorer” para vermos as opções disponíveis. Para vermos estes símbolos basta clicar no botão “More Symbols” no editor de simbologia dos pontos:

image

E assim podemos escolher um símbolo mais ajustado à utilização em Google Earth. O ArcGIS ao converter o layer para KML vai criar um pequeno ficheiro png que incluirá no nosso KML, e que será usado pelo Google Earth.

Para exemplificar escolhi o simbolo de uma cama de hotel e o aspecto do mapa ficou assim:

image image

Incluir atributos

O KML é uma linguagem muito flexível, permitindo associar informação descritiva aos elementos vectoriais. O ArcGIS facilita o processo de passar atributos para o KML, automatizando o processo. Claro que o processo automático tem limitações, mas para quem não quer ou não sabe editar KML manualmente, este automatismo é muito útil, e pode dar bons resultados.

Vários elementos passam do ArcMap para o KML automaticamente:

  1. O nome do layer passa como nome da pasta que contém os pontos
  2. A descrição do layer no ArcMap (nas propriedades, separador “General“), passa para o “Snippet” que descreve o layer no Google Earth
  3. As Labels do ArcMap são usadas para dar um nome a cada vector no Google Earth, e a própria label vai surgir na imagem no Google Earth
  4. Se no ArcMap definirmos as propriedades de “HTML Popup“, o Google Earth vai mostrar essa informação quando clicarmos sobre um ponto
  5. Se houver uma legenda no Layout do ArcMap, será passada ao KML e mostrada no Google Earth como uma imagem sobreposta à imagem do terreno (“screen overlay“), podendo no processo de exportação escolher o canto no ecrã onde surgirá

A ferramenta HTML Popup é uma variante da ferramenta de Identify, mas que mostra os atributos do vector clicado numa janela HTML que podemos configurar. Na sua forma pré-definida os campos são mostrados de acordo com as definições do separador “Fields“. Por exemplo, podemos esconder campos, e alterar a “Caption” para mostrar nomes de campos em português ou mais perceptíveis para o utilizador.

Portanto, para começar temos de definir as propriedades do HTML Popup do nosso layer de pontos no ArcMap. Para isso, nas propriedades do layer, separador “HTML Popup“, basta ligar a opção de usar a ferramenta de HTML Popup, e ao clicar no botão Verify podemos ver como ficará a janela de popup.

image

Podemos ainda melhorar o aspecto da janela se mudarmos as “Captions” dos campos e escondermos os campos que não nos interessa mostrar (usando o separador “Fields“). O aspecto final ficaria assim:

image

Rótulos ou Labels

Se definirmos labels no nosso layer de pontos, estes textos serão usados como o nome de cada ponto no KML final, e serão também visíveis no mapa junto a cada ponto. Portanto será uma questão de se querer ou não ligar as labels do layer e escolher o campo, a fonte, tamanho, cor, efeitos, etc. Mais importante será definir a escala a partir da qual os textos são mostrados, e que será respeitada pelo Google Earth. Se tiver muitos pontos aglutinados esta opção é praticamente obrigatória.

Executar a ferramenta “Layer To KML

Esta ferramenta encontra-se na Toolbox de Conversão, toolset “To KML“:

image

Uma vez que queremos exportar a nossa informação como pontos e não como uma imagem, a questão mais importante nesta ferramenta é *não* ligar a opção de “Return single composite image“. Na caixa de “Output File” temos de indicar o caminho para o ficheiro a criar que deve ter obrigatoriamente a extensão KMZ (o ArcMap irá criar uma pequena imagem .png para mostrar o nosso símbolo no Google Earth que será incluída no ficheiro KMZ). Por fim, é obrigatório indicar a escala máxima de visualização. Ou seja, só a partir desta escala é que a informação será mostrada pelo Google Earth.

Resultado Final

E é tudo. Basta agora que no Google Earth usemos a opção File->Open para abrir o nosso ficheiro KMZ e ver o resultado final.

image

Existem ainda alguns melhoramentos que poderemos fazer: alterar o nome do layer no ArcMap irá alterar o nome do layer no Google Earth. Podemos também criar um ficheiro xsl para criar uma visualização alternativa com melhor estilo e até incluir imagens nas nossas janelas de popup (O ArcGIS inclui alguns exemplos na «directoria de instalação\ArcGIS\Styles» que podemos usar como base).

Existem muitas ferramentas de criação de KML a partir do ArcGIS que começaram a aparecer já há alguns anos, quando o ArcGIS não oferecia qualquer possibilidade de conversão. Com o tempo, a ESRI foi incluindo mais capacidades de conversão. Hoje, já na versão 9.3, fiquei impressionado com as capacidades nativas do ArcGIS – conseguimos obter um KML já com alguma sofisticação, e usando um processo de conversão bastante simples recorrendo a ferramentas e definições familiares a qualquer utilizador de ArcGIS.

23 thoughts on “Criar KML de Pontos no ArcGIS

  1. Caro Duarte, muito boa explicação do procedimento. Recentemente tive necessidade de exportar um MXD todo para KMZ (opção Map to KML) e posso dizer que resulta na perfeição. O beneficio para quem não tem websig, é permitir o acesso de outros utilizadores não SIG à informação apartir do Google Earth.

    Abraço,
    Nelson Silva

  2. Excelente tutorial. Já dá para ver que a ESRI foi obrigada a “engolir” o formato kml para não ficar de perder o trem.

    Parabens mais uma vez ao site.

  3. @Luiz: parece que fomos todos obrigados, afinal o KML passou a standard da OGC em tempo recorde! Mas é verdade que a ESRI demorou a integrar o KML no ArcGIS. Mas hoje se calhar já se redimiu??

  4. Caro Duarte,

    A explicação está excelente, no entanto estou com um problema que não consigo resolver, precisa de exportar uma shape de polignos com as labels associadas e não consigo, será que me podia dar uma ajuda?
    Flora Ludovina

  5. Minha dúvida é a mesma que a da Flora..não estou conseguindo exportar Labels junto com os poligonos!
    Obrigada…

  6. Olá Flora, e Cleide.

    Sucede que labels em KML são como elementos pontuais com texto. E o ArcMap não cria esses elementos automaticamente no KML…
    Temos de ser nós a criar os pontos a partir dos polígonos, ligar as labels nesses pontos (em vez de nos polígonos), e depois exportar.

    Para criar os pontos, podemos usar a tool “Feature to Point”, mas é preciso o ArcInfo. Se tivermos o ArcView, podemos criar centróides para os polígonos em 2 passos:
    i) criar 2 novos campos na tabela dos polígonos para guardar as coordenadas do centróide de cada poly; abrir a tabela de atributos e usar a nova opção “Calculate Geometry” para calcular o X e o Y dos centróides.
    ii) usar a ferramenta “Make XY Event Layer” para criar um layer de pontos a partir das coordenadas calculadas acima.

    Para exportar os polígonos e o layer de pontos com labels, para um só kml, podemos agrupar os 2 layers num Group Layer e usar a tool “Layer to KML”, ou então usar a tool “Map to KML” que exporta todos os layers que estão no ArcMap.

    Também podem decidir ter os atributos associados aos pontos em vez de associados aos polígonos, mas isso já será uma questão de gosto. Se quiserem podem esconder os pontos – basta que no ArcMap usem uma simbologia “invisível” como por exemplo escolher a cor “No color” no símbolo dos pontos.

    Desculpem lá a resposta algo telegráfica, mas estou no último dia antes de férias, e o tempo é pouco… espero que tenha conseguido explicar…

    Bom trabalho.
    Duarte

  7. Olá pessoal…

    Quanto à questão de exportar KML do ARCGIS da versão 9.2, descobrir na semana passada um website de uns investigadores da Universidade de Coimbra, que em Outubro do ano passado apresentaram num congresso, uma forma bastante revolucionária de apresentação de cartografia KML em web 2.0.

    http://www.inovmap.com

    Está muito interessante aconselho a ver.

  8. Olá
    Eu tenho tido um problema aquando da passagem do ArcGis para ficheiro kml que é o seguinte: Quando as palavras do label têm ç ou ^,~ em ArcGis aparecem bem escritas, no entanto em Google Earth aparecem outros caracteres. Gostaria de saber se alguem sabe de alguma forma disto deixar de acontecer e as palavras apareçam escritas correctamente.
    Obrigada
    Inês

  9. Carlos,

    Associar como? Se é para usar imagens como símbolos, não funciona se usar no ArcMap a opção de “Picture Marker Symbol” para simbolizar os pontos (pode-se escolher imagens bmp ou emf)? Julgo que deveria funcionar…

    Duarte

  10. Inês, penso que esse problema de caracteres se deve à codificação do ficheiro kml… na 1ª linha podemos definir qual a codificação do nosso ficheiro. Por default, é UTF-8, mas no caso poderia ser ISO-8859-1. Assim, a 1ª linha poderia ser:

    Talvez isto resulte?

    Duarte

  11. David,

    O Google Earth espera que os pontos estejam com coordenadas WGS84. Parece-me que terá exportado os dados para kml com outro sistema de coordenadas…

    Duarte

  12. Ok, o meu maxilar caiu ao chão.
    Que artigo fantástico, especialmente no que toca à colocação dos atributos.
    Quanto à ferramenta para exportação para kmz, ela não exige, pelo menos actualmente, que os dados estejam em wgs84.
    E isso dá bastante jeito já que exige a criação de mais uma shapefile.

    Um abraço.

  13. Duarte,

    Eu gostava de saber se existe algum modo automático de agrupar a informação exportada para kmz, ou seja, partir a informação existente na tabela e distribuir por subniveis

    Exemplo: Nivel 1
    Nivel 2.1
    Nivel 3
    Nivel 2.2

    Obrigado e bom trabalho

  14. gostaria de saber como solucionar o problema de não visualizar o mapa no data view, mas o mesmo aparece no layout. mas tenho os dados no layer

  15. Sérgio, a única coisa que me ocorre é que o layer tem escalas de visualização definidas. No layout a escala deve permitir visualizar o layer, e no data view a escala não o deve permitir… experimente limpar as escalas…

  16. Duarte, sabe dizer sobre o caminho contrário, do kml para o shape? Tive dois problemas: um pouco de deslocamento, que fez com que alguns pontos que estavam dentro do município ficassem fora e vice-versa; e os atributos inseridos ou pré existentes no kml não são trazidos no shape. Agradeço a ajuda!!

  17. Beatriz, não conheço problemas de conversão de kml/kmz para arcgis, pelo menos usando a tool Conversion Tools->KML To Layer.

    A questão do deslocamento parece-me que será devido à transformação para o sistema de coordenadas que usa: tem de definir uma transformação de datum, mesmo que os parâmetros sejam todos 0 , como no caso de wgs84->etrs89… não sei porquê.

    Há outra opção muito rápida… pode carregar o kml/kmz no qgis e usar a opção “Save as” do botão direito do rato. Aqui pode exportar para shapefile. Tem, depois, ainda que transformar o sistema de coordenadas.

    Se quiser envie-me o kml zipado ou parte dele para experimentar… dncarreira em gmail . com.
    Duarte

  18. Caro Duarte,
    quando exporto o meu layer para .kmz, a legenda do meu layout não aparece corretamente no Google Earth. Aparece uma imagem de cor branca no lugar da legenda. Como proceder?
    Muito obrigado.

  19. Muito bom o tutorial,

    Uma duvida tem como incluir imagem .jpg no HTML, como se foce um hyperlink?

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *