outubro | 2014 | Google Earth na Sala de Aula

Google Earth na Sala de Aula

Calcular distâncias e coordenadas por Geocoding com Google Sheet

Por Luis Correia Antunes | 16h50, 27 de Outubro de 2014

original1 300x199 Calcular distâncias e coordenadas por Geocoding com Google Sheet

Todos nós temos no nosso imaginário a colocação de pins em mapas pendurados na parede quando se queria identificar ocorrências ou pontos de interesse em determinados países, cidades ou localidades. Isto foram os primórdios do Geocoding (ou Geocodificação). Ao longo de 10 anos de experiência em trabalhos na área das tecnologias de análise espacial, esta foi das tarefas em que senti uma maior evolução e simplificação de procedimentos: o Geocoding – conversão de endereços ou moradas em coordenadas geográficas. Muito graças às API da Google. O Geocoding procede de uma interpolação automática de elementos do tipo linha (endereço, toponímia de estradas e rios) ou mesmo de um polígono (unidades administrativas, códigos postais, parcelas cadastrais, etc) para atribuir as coordenadas geográficas de um ponto central. No caso de ser um ponto (caso de escolas, cafés ou outros pontos de interesse) é simplesmente atribuído as coordenadas desse ponto. Existe ainda o Reverse Geocoding que é o geoprocessamento inverso: atribuição de um endereço a partir umas coordenadas geográficas, muito útil quando temos coordenadas GPS e queremos identificar os seus endereços.

Este geoprocessamento é utilizado quando temos uma lista de moradas ou endereços e queremos mapear os seus conteúdos de modo a identificar clusters, padrões, tendências e mapear todas as variáveis que se queira analisar. É usado em várias áreas como o geomarketing, epidemiologia, inventários, ciências policiais, educação. O que vou mostrar neste Post é quatro exemplos da utilização da análise espacial com comandos de geocoding do Google recorrendo às aplicações Google Spreadsheet e o Google My Maps com os Scripts (ou funções) da Google API: Cálculo de distâncias (routing) por diferentes meios de transporte, distância direta (distância de circulo máximo), tempo a percorrer o caminho pelos vários meios de transporte, e a atribuição de coordenadas geográficas a partir do endereço (Geocoding) e o inverso (ReverGeocoding). O sucesso desta tarefa depende, acima de tudo de três fatores:

      – Qualidade dos mapas de base que dispomos para a busca. Neste caso serão os mapas da Google e a qualidade vai depender do seu local de estudo;
      – Qualidade e precisão da lista de endereços que tem para mapear (moradas completas, com vários níveis de precisão e sem erros);
      – Motor de busca, neste caso será o API da Google de Geocoding, mas existem outras opções como programas Desktop.

NewDoc 300x123 Calcular distâncias e coordenadas por Geocoding com Google Sheet

Adicionar novo documento no Google Drive

O exemplo que iremos usar neste post é o mapeamento da escola e do endereço de alunos com as variáveis que desejar ver mapeados de modo a poder identificar algum tipo de padronização por área de residência e criar mapas temáticos. Para iniciar, entre na sua conta da Google Drive e crie uma nova folha Google Spreadsheet. Adicione os campos “Nome Aluno” (coluna A), “Endereço” (coluna B), “latitude” (coluna C), “longitude” (coluna D), “Endereço Obtido” (coluna E), “Distância Metros Carro” (coluna F), “Distancia Metros a pé” (coluna G), “Tempo Minutos Carro” (coluna H), “Tempo Minutos pé” (coluna I),”Distância Circulo máximo” (coluna J). Pode ainda acrescentar outros campos ache interessante para caracterizar o aluno (Nacionalidade, Avaliação, Idade, Tipo de transporte que usa, etc).

Script 300x242 Calcular distâncias e coordenadas por Geocoding com Google Sheet

Opções da Janela Google Apps Script

Vamos dar início à criação das funções, os chamados script, de geoprocessamento através do menu Tools –> Script editor… . Se nunca criou um script vai aparecer-lhe a janela de Google Apps Script, idêntica a esta, e escolha a opção “Blank Project”. A primeira coisa a fazer é renomear o projeto, neste caso pode dar o nome de “Funções de geocodificação”. O primeiro script a criar vai ser para obter as coordenadas Latitude e Longitude a partir do endereço (Geocoding) e o geoprocessamento inverso de atribuição de endereços a partir das coordenadas Latitude e Longitude (Reverse Geocoding). Copiamos o código existente na caixa em baixo e substituímos o texto existente na caixa de código. Gravamos e renomeamos o código para “GetLatLong”. Para terminar, publicamos o script em Publish –> Deploy as a web app… . Escolhemos a opção Deploy e finalizamos a publicação com OK.

WebApp 1024x529 Calcular distâncias e coordenadas por Geocoding com Google Sheet

Gravação e publicação da Web App


function getLat(address) {
  if (address == '') {
    Logger.log("Must provide an address");
    return;
  }
  var geocoder = Maps.newGeocoder();
  var location;
    // Geocode the address and plug the lat, lng pair into the
    // 2nd and 3rd elements of the current range row.
    location = geocoder.geocode(address);
    // Only change cells if geocoder seems to have gotten a
    // valid response.
    if (location.status == 'OK') {
      lat = location["results"][0]["geometry"]["location"]["lat"];
 return lat;
    }
};

function getLon(address) {
  if (address == '') {
    Logger.log("Must provide an address");
    return;
  }
  var geocoder = Maps.newGeocoder();
  var location;
    // Geocode the address and plug the lat, lng pair into the
    // 2nd and 3rd elements of the current range row.
    location = geocoder.geocode(address);
    // Only change cells if geocoder seems to have gotten a
    // valid response.
    if (location.status == 'OK') {
      lng = location["results"][0]["geometry"]["location"]["lng"];
 return lng;
  }
};

function geoname(lat,lng) {
  var response=Maps.newGeocoder().reverseGeocode(lat, lng);
  return response.results[0].formatted_address;
};

Fazemos o mesmo procedimento para o cálculo de distâncias em metros entre dois pontos de carro e a pé, neste caso entre a escola e local de residência. Para adicionar um novo script vá ao menu File –> New –> Script file… e atribua-lhe o nome de “Distancia”. Copie o código neste caixa e cole na nova folha, substituindo o texto existente nessa folha por este código.

function DrivingMetersCar(origin, destination) {
  var directions = Maps.newDirectionFinder()
  .setOrigin(origin)
  .setDestination(destination)
  .setMode(Maps.DirectionFinder.Mode.DRIVING)
  .getDirections();
  return directions.routes[0].legs[0].distance.value;
}
function DrivingMetersWalk(origin, destination) {
  var directions = Maps.newDirectionFinder()
  .setOrigin(origin)
  .setDestination(destination)
  .setMode(Maps.DirectionFinder.Mode.WALKING)
  .getDirections();
  return directions.routes[0].legs[0].distance.value;
}

Criamos mais um script para calcular o tempo (em minutos) a percorrer o mesmo caminho a pé e de carro.


function DrivingMinWalk(origin, destination) {
  var directions = Maps.newDirectionFinder()
  .setOrigin(origin)
  .setDestination(destination)
  .setMode(Maps.DirectionFinder.Mode.WALKING)
  .getDirections();
  return directions.routes[0].legs[0].duration.value / (60);
}

function DrivingMinCar(origin, destination) {
  var directions = Maps.newDirectionFinder()
  .setOrigin(origin)
  .setDestination(destination)
  .setMode(Maps.DirectionFinder.Mode.DRIVING)
  .getDirections();
  return directions.routes[0].legs[0].duration.value / (60);
}

Criamos o último script para calcular a distância mais curta entre dois pontos em esfera, (distância de círculo máximo), com pouca representação em distâncias tão curtas, mas pode ter relevância em distâncias grandes (usado para a navegação marítima e aérea).


function GCD1(lat1, lon1, lat2, lon2) {
// Return Great Circle Distance between points calculation
function radians(a) {
var outNum =Math.PI*a/180;
return outNum;
}
var R = 6372.795;
var d1=Math.sin(radians(lat1))*Math.sin(radians(lat2))+Math.cos(radians(lat1))*Math.cos(radians(lat2))*Math.cos(radians(lon2)-radians(lon1));
var d2=Math.cos(radians(lat2))*Math.sin(radians(lon2)-radians(lon1));
var d3=Math.cos(radians(lat1))*Math.sin(radians(lat2))-Math.sin(radians(lat1))*Math.cos(radians(lat2))*Math.cos(radians(lon2)-radians(lon1));
var len=R*Math.atan2(Math.sqrt(d2*d2+d3*d3),d1);
return len;
}​

Grave o projeto de script e volte à sua folha de cálculo do Google Spreadsheet. O procedimento de aplicação de funções nas células do Google Spreadsheet é idêntico à folha de Excel. Coloque os títulos das colunas na primeira linha e a segunda linha registe o local ao qual quer calcular as distâncias, por exemplo a escola. A partir da linha 3 serão preenchidos os alunos. Na linha 3 e para cada uma das colunas onde serão colocados os scripts criados, coloque o cursor em cada uma das células das colunas correspondentes, e use os seguintes comandos:

      – Coordenada Latitude do endereço –> =GetLat(B3)
      – Coordenada Longitude do endereço –> =GetLon(B3)
      – Obter novamente o endereço destas coordenada, desta o endereço obtido a partir dos mapas existentes nos servidores da Google –> =geoname(C3,D3)
      – Calcular a distância, em metros, do percurso de carro entre a escola e a morada de residência (“B$2″ é para bloquear a célula do endereço da escola ao arrastar as células para baixo para calcular as restantes distâncias) –> =DrivingMetersCar(B3,B$2)
      – Calcular a distância, em metros, do percurso
a pé entre a escola e a morada de residência –> DrivingMetersWalk(B3,B$2)
      – Calcular o tempo, em minutos, que demora a percorrer de carro desde a morada de residencia à escola –> =DrivingMinCar(B3,B$2)
      – Calcular o tempo, em minutos, que demora a percorrer a pé o percurso desde a morada de residência à escola –> =DrivingMinWalk(B3,B$2)
      – Calcular a distância de círculo máximo entre a escola e a morada de residência do aluno –> =GCD1(C$2,D$2,C3,D3)

FinalGeocondigSheet 300x154 Calcular distâncias e coordenadas por Geocoding com Google Sheet

Resultado da geocodigicação da Google Sheet

No fim pode arrastar cada uma destas células para preencher automaticamente as restantes linhas. Esta folha de cálculo pode ser partilhada pelos alunos e deixar que sejam eles a preencher o nome e o endereço e será atualizado automáticamente os campos com as funções espaciais. Ter em atenção que os utilizadores comuns de contas gmail tem acesso limitado a pedidos de API da Google (ver o limite de Quotas). Se exceder o número de pedido aparece um erro e só poderá proceder novamente ao seu cálculo passado 24h. Mas para a Educação e Governo, pode ser feito o pedido acesso ao limite máximo de pedidos. Para saber mais sobre os scripts em Google Sheet, consulte a página de configurações de funções.

ImportarMapa 300x154 Calcular distâncias e coordenadas por Geocoding com Google Sheet

Para terminar, falta ver o resultado destas funções em mapas. Aceda à sua conta do Google My Maps e escolha a opção Create a new map. Altere o nome do mapa (“Mapa dos Alunos”) e da layer de dados (“Endereços dos Alunos”) e escolha a opção Import e a opção My Drive para importar a tabela criada anteriormente. Escolha as opção das coordenadas geográficas “Latitude” e “Longitude” ou uma das colunas com os “Endereços” para o posicionamento dos pontos e a coluna “Nome Aluno” para nome dos pontos. A partir de agora pode criar mapas temáticos escolhendo Style que quiser. Pode ainda editar o posicionamento ponto de modo a criar maior precisão da geocodificação. Mais uma vez, pode deixar que sejam os seus alunos a fazer esta tarefa partilhando com eles este mapa.

MyMapsGeocoding 1 300x157 Calcular distâncias e coordenadas por Geocoding com Google Sheet

Esta experiência de funções espaciais e de geocodificação será apresentada no primeiro evento da Google for Education em Portugal, carcavelos, no dia 29 e 30 de novembro. Se quiser participar no evento de modo realizar este e outros trabalhos recorrendo às API da Google, participe no Portugal Summit – AppsEvent. Inscrições em http://portugal.appsevents.com/registration. Pode aceder ao material usado para este post como a tabela com permissões para comentar e ao mapa final através destes links.

Acompanhe a publicação de novos recursos e mapas do livro subscrevendo o canal Youtube com os filmes demonstrativos da aplicação dos mapas e curtindo a página do facebook do livro. Desfrute de mais este recurso, partilhando o conhecimento com os seus alunos e colegas com criatividade e originalidade.

Para o curso “The Magic of Google Mapping”, será usado esta apresentação:
http://goo.gl/gPxgIA

Para o curso “Google Earth in the Classe Room”, será usado esta apresentação:
http://goo.gl/VcKEFJ

share save 171 16 Calcular distâncias e coordenadas por Geocoding com Google Sheet

Mapa mundial dinâmico da temperatura média mensal

Por Luis Correia Antunes | 22h00, 03 de Outubro de 2014

Depois do sucesso do post com o mapa das Alterações climáticas 1900-2100 segundo a classificação KÖPPEN-GEIGER, o livro “Google Earth na Sala de Aula” apresenta um novo recurso cartográfico com a temática do clima como pano de fundo. Desta vez o livro publica o mapa dinâmico à escala mundial com a temperatura média mensal.

range Mapa mundial dinâmico da temperatura média mensalOs dados originais usados para criar este mapa foram um conjunto de 12 imagens grid (ou raster), com a temperatura média mensal, com resolução espacial de 1Km2. Estes grids foram interpolados com base em dados meteorológicos de temperatura média obtidos através de uma rede com mais de 14.000 estações espalhadas pelo mundo, tal como estão representadas na imagem. A maioria das estações têm um registo de dados contínuo entre os anos de 1950 a 2000, com algumas excepções de estações mais recentes como a da Amazónia, de modo a cobrir da melhor maneira a superfície terrestre. A fonte foi o sítio de Internet WorldClim – Global Climate Data, que cria e distribui dados espaciais para modelação ecológica e ambiental (GIS). Este sítio de Internet tem Conjunto de Dados Geográficos (CDG) sobre temperatura (mínima, média e máxima), precipitação e variáveis bioclimáticas. Estes dados são gratuitos e têm tido um uso recorrente em modelação espacial para fins académicos por parte de investigadores.

Temperatura1 300x160 Mapa mundial dinâmico da temperatura média mensal

Geoprocessamento de Temperatura Média

De entre os recursos cartográficos disponibilizados pelo “Google Earth na Sala de Aula” (pode ver os mapas existente no canal de Youtube do livro), este foi, sem dúvida, o que teve mais trabalho de geoprocessamento. Com base nestes mapas grid de temperatura média mensal do WorldClim, foi feita a conversão do formato grid para vetor (vetorização) com amplitudes de 10˚C de temperatura entre cada polígono. Realizaram-se geoprocessamentos de generalização cartográfica (eliminação de polígonos pequenos e sua posterior simplificação) para se conseguir um ficheiro mais limpo e simples, tal como esta apresentado na imagem. Por último exportou-se o resultado para KML e procedeu-se à atribuição da 4º dimensão nos mapas: o intervalo de tempo de cada mês.

O resultado deste trabalho é um arquivo KML constituído por 12 mapas com a temperatura média observada num determinado mês. Recorrendo ao comando de navegação no tempo, consegue-se criar uma animação automática com os dados, visualizando a dinâmica da temperatura ao longo do ano. Pode comparar as temperaturas nos solstícios no hemisfério norte e sul e ver as amplitudes térmicas (médias) dos vários países.

Explore e baixe gratuitamente este mapa através do URL existente no filme Youtube onde explica a sua aplicação e uso.

Se pretende começar a criar os seus próprios mapas e apresentar os seus conteúdos programáticos e de pesquisa no Google Earth, tem agora a oportunidade para o fazer. Em novembro de 2014 vai iniciar-se o curso on-line “Google Earth na Sala de Aula: Professores e Pesquisadores” no instituto GEOeduc. Esteja atento que no próximo post será apresentado o programa do curso.

Acompanhe a publicação de novos recursos e mapas do livro subscrevendo o canal Youtube com os filmes demonstrativos da aplicação dos mapas e curtindo a página do facebook do livro. Desfrute de mais este recurso, partilhando o conhecimento com os seus alunos e colegas com criatividade e originalidade.

share save 171 16 Mapa mundial dinâmico da temperatura média mensal

AppsEvents Featuring Google for Education em Portugal

Por Luis Correia Antunes | 14h26, 03 de Outubro de 2014

Speaker Badge1 300x300 AppsEvents Featuring Google for Education em Portugal

AppEvent Featuring Google for Education

Nos dias 29 e 30 de novembro, na escola St. Julians, em Oeiras, irá decorrer o primeiro evento da Google for Education em Portugal. O AppsEvents Portugal Summit tem como objetivo a partilha de experiências da aplicação das várias plataformas tecnológicas da Google entre toda a comunidade educativa, iniciando professores e educadores de todas as áreas curriculares na introdução de novas técnologias na sala de aula. Serão também ministrados mini-cursos em várias App, onde os participantes são convidados usar os seus portáteis para se iniciarem nestas ferramentas. De entre as sessões, há a destacar a criação de digramas com Lucidchart, ferramentas básicas e avançadas da folha de cálculo spreadsheets, gestão e partilha de fotografias pelo Picasa, e muitas outras sessões práticas.

O “Google Earth na Sala de Aula” vai estar também incluido numa destas sessões práticas. A sessão “Google Earth in the Classroom” será constituída por uma breve descrição do projeto, apresentando alguma das potencialidades desta ferramenta como recurso educativo de apoio aos vários programa curriculares e daremos oportunidade aos professores e educadores em poder trabalhar e criar o seu primeiro mapa com o programa Google Earth.

Se quiser saber mais sobre o evento, veja o filme de anteriores eventos que decorreram noutros países. Não perca esta oportunidade e faça também parte da história da Google for Education.

Acompanhe a publicação de novos mapas do livro subscrevendo o canal Youtube com os filmes demonstrativos da sua aplicação e curtindo a página do facebook do livro. Desfrute destes recursos, partilhando o conhecimento com os seus alunos e colegas com criatividade e originalidade.

share save 171 16 AppsEvents Featuring Google for Education em Portugal
  • Luis Correia Antunes
    @lcantunes
    Licenciado em Engenharia Geográfica pela Faculdade de Ciências da Universidade de Lisboa Mestre em Georrecursos pelo Instituto Superior Técnico Mais de 500 horas de formação em Google Earth, software opensource SIG e software CAD. Em abirl de 2013 lançou o livro “Google Earth na Sala de Aula” pela Areal Editora.

    Licenciado em Engenharia Geográfica pela Faculdade de Ciências da Universidade de Lisboa Mestre em Georrecursos pelo Instituto Superior Técnico Mais de 500 horas de formação em Google Earth, software opensource SIG e software CAD. Em abirl de 2013 lançou o livro “Google Earth na Sala de Aula” pela Areal Editora.

  • Marcos Pelegrina
    @marcospelegrina
    Marcos Aurélio Pelegrina Bacharel em Geografia pela Universidade Federal do Paraná (1999), Mestre e Doutor em Engenharia Civil área de concentração Cadastro Técnico Multifinalitário e Gestão Territorial pela Universidade Federal de Santa Catarina (2009). Professor Adjunto C do departamento de Geografia da Universidade Estadual do Centro-Oeste do Paraná.

    Marcos Aurélio Pelegrina Bacharel em Geografia pela Universidade Federal do Paraná (1999), Mestre e Doutor em Engenharia Civil área de concentração Cadastro Técnico Multifinalitário e Gestão Territorial pela Universidade Federal de Santa Catarina (2009). Professor Adjunto C do departamento de Geografia da Universidade Estadual do Centro-Oeste do Paraná.

  •