Polígonos com linhas geodésicas em mapas de Google
Continuamos a explicação do artigo sobre
mapas de Google e polígonos. Anteriormente vimos como criar uma linha reta em um mapa de Google entre dois pontos dados. Agora vamos ver como criar um polígono com vários pontos e linhas geodésicas.
Primeiro, temos que explicar o que são linhas geodésicas. Como sabemos, a terra é esférica e portanto, sua superfície tem uma curvatura, apesar que nos mapas aparece a terra sobre um plano reto. Por isso, para ir de um ponto a outro no mapa, realmente não iremos em linha reta, e sim realizando essa forma da curvatura da terra. Isto é porque a distância mais curta entre dois pontos da terra se representaria com uma curva geodésica.
Para dizer ao API de mapas de Google que trace linhas geodésicas sobre o mapa temos que especificá-lo na hora de instanciar o polígono. Para isso, primeiro temos que definir uma opção adicional ao polígono:
var opcoes_poligono = {geodesic:true};
Agora passamos essas opções como último parâmetro no construtor do objeto da classe GPolyline.
Imaginemos que queremos construir um polígono que faz esta rota: Madri, Moscou, Istambul, Roma, Tunísia e Madri. Primeiro, criaríamos os pontos dessas cidades:
var madri = new GLatLng(40.4165020, -3.702564);
var moscou = new GLatLng(55.7522222, 37.6155556);
var istambul = new GLatLng(41.0186111, 28.9647222);
var roma = new GLatLng(41.9, 12.4833333);
var tunisia = new GLatLng(36.8027778, 10.1797222);
E logo instanciaríamos o polígono, indicando que queremos linhas geodésicas, desta forma:
var poligono = new GPolyline([madri, moscou, istambul, roma, tunisia, madri], "#cccc00", 6, 0.6, opcoes_poligono);
Por último ordenamos que se pinte o polígono no mapa com o método addOverlay().
map.addOverlay(poligono);
Podemos
ver um exemplo que faz este mapa com o polígono com linhas geodésicas.