MATLAB -Google Maps Navigation Connection
Transcrição
MATLAB -Google Maps Navigation Connection
TUTORIAL MATLAB -Google Maps Navigation Connection ICARO BEZERRA VIANA DAVID FERNANDO CASTILLO ZÚÑIGA Instituto Tecnológico de Aeronáutica São Jose dos Campos/São Paulo Brasil Outubro-2010 1. Introdução Esta tutorial esta enfocada num canal de comunicação entre Matlab e Google Maps de modo de se apresentar em um mapa Google uma trajetória fornecida pelo MATLAB. O Matlab deve enviar em intervalos de tempo regulares um novo valor de coordenadas e esta coordenada deve ser assinalada no mapa. 2. Google Stactic Maps API (Generalidades) Visão Geral A Google Static Maps API retorna uma imagem (GIF, PNG ou JPEG) em resposta a uma solicitação HTTP por meio de um URL. Para cada solicitação, você pode especificar a localização do mapa, o tamanho da imagem, o nível de zoom, o tipo do mapa e o posicionamento de marcadores opcionais em locais do mapa. Parâmetros de URL Um URL da Google Static Maps API deve ter o seguinte formato: http://maps.google.com/maps/api/staticmap?parameters Alguns parâmetros são obrigatórios e outros são opcionais. Como é padrão em URLs, todos os parâmetros são separados usando o caractere "e" comercial (&). A Google Static Maps API define imagens de mapa usando os seguintes parâmetros de URL: A Google Static Maps API define imagens de mapa usando os seguintes parâmetros de URL: Parâmetros de localização: Center (obrigatório, caso não haja marcadores) define o centro do mapa, equidistante em relação a todas as suas bordas. Este parâmetro usa um local como um par de {latitude,longitude} separado por vírgula (por exemplo, "40.714728,-73.998672") ou um endereço de string (por exemplo, "city hall, nova york, ny") que identifica um local exclusivo na face da Terra. Zoom (obrigatório caso não haja marcadores) define o nível de zoom do mapa, que determina o nível de ampliação do mapa. Esse parâmetro usa um valor numérico correspondente ao nível de zoom da região desejada. Para obter mais informações, consulte níveis de zoom abaixo. Parâmetros de mapa: Size (obrigatório) define as dimensões retangulares da imagem de mapa. Esse parâmetro usa uma string com o formato valuexvalue, na qual os pixels horizontais são indicados antes dos pixels verticais. Por exemplo, 500x400 define um mapa com 500 pixels de largura por 400 pixels de altura. Format (opcional) define o formato da imagem resultante. Por padrão, a API do Google Static Maps cria imagens PNG. Há vários formatos possíveis, incluindo GIF, JPEG e PNG. O formato adotado depende de como você pretende apresentar a imagem. JPEG normalmente proporciona uma compactação maior, enquanto GIF e PNG proporcionam mais detalhes. Maptype (opcional) define o tipo de mapa a ser construído. Há vários valores de tipo de mapa possíveis, incluindo roadmap, satellite, hybrid e terrain. Mobile (opcional) especifica se o mapa será exibido em um dispositivo móvel. Os valores válidos são true ou false. Os mapas exibidos em dispositivos móveis podem usar conjuntos de blocos diferentes, otimizados para esses dispositivos. Language (opcional) define o idioma a ser usado para a exibição de marcadores nos blocos do mapa. Esse parâmetro só é compatível com blocos de alguns países. Se o idioma específico solicitado não for suportado pelo conjunto de blocos, o idioma padrão desse conjunto será usado. Parâmetros de recurso: Markers (opcional) define um ou mais marcadores a serem anexados à imagem em localizações especificadas. Esse parâmetro usa uma única definição de marcador com parâmetros separados pelo caractere barra (|). Diversos marcadores podem ser colocados no mesmo parâmetro markers contanto que exibam o mesmo estilo. Você pode adicionar outros marcadores com estilos diferentes adicionando outros parâmetros markers. Se você fornecer marcadores para um mapa, não será necessário especificar os parâmetros center e zoom, normalmente obrigatórios. Path (opcional) define um único caminho com dois ou mais pontos conectados que serão colocados sobre a imagem nos locais especificados. Esse parâmetro usa uma string de definições de ponto separadas pelo caractere de barra vertical (|). Você pode fornecer caminhos adicionais adicionando outros parâmetros path. Se você fornecer um caminho para um mapa, não será necessário especificar os parâmetros center e zoom, normalmente obrigatórios. Para obter mais informações, consulte Caminhos do mapa estático abaixo. Visible (opcional) especifica uma ou mais localizações que devem permanecer visíveis no mapa, embora nenhum marcador ou outros indicadores serão exibidos. Use esse parâmetro para se certificar de que determinados recursos ou localizações de mapa sejam exibidos no mapa estático. Parâmetros de relatório: Sensor (obrigatório) especifica se o aplicativo que está solicitando o mapa estático está usando um sensor para determinar a localização do usuário. Níveis de zoom Os mapas do Google Maps contam com um inteiro "zoom level" que define a resolução da visualização atual. Níveis de zoom entre 0 (o mais baixo, no qual todo o mundo pode ser visto em um só mapa) e 21+ (chega até construções individuais) são possíveis na visualização padrão dos mapas. O Google Maps define o nível de zoom como 0 para abranger toda a Terra. Cada nível de zoom subsequente dobra a precisão nas dimensões horizontal e vertical. Se obten por tanto uns graus de resolução para cada nível de zoom de +-180/2n. Observação: Nem todos os níveis de zoom podem ser aplicados a em todos os locais na Terra. Os níveis de zoom variam dependendo do local, pois os dados em algumas partes do globo são mais granulares do que em outros locais. Se você enviar uma solicitação de um nível de zoom no qual não haja blocos de mapa, a API do Google Static Maps retornará uma imagem em branco no lugar. Tamanhos de imagem As imagens podem ser recuperadas com tamanhos de até 640 por 640 pixels. O parâmetro size usa uma string com dois valores separados pelo caractere x. 640x640 é o maior tamanho de imagem permitido. Tipos de mapa A Google Static Maps API cria mapas em diversos formatos, listados abaixo: roadmap (padrão) especifica uma imagem de mapa padrão, semelhante às exibidas normalmente no site do Google Maps. Se nenhum valor for especificado para maptype, a Google Static Maps API mostrará blocos de roadmap por padrão. satellite especifica uma imagem de satélite. terrain especifica uma imagem de mapa de relevo físico, mostrando terreno e vegetação. hybrid especifica uma combinação de imagens de satélite e de mapa, mostrando uma camada transparente das principais ruas e nomes de lugares na imagem de satélite. Latitudes e longitudes Latitudes e longitudes são definidas por numerais separados por vírgula em uma string de texto, com uma precisão de até 6 casas decimais. Por exemplo, "40.714728,-73.998672" é um valor de geocódigo válido. A precisão posterior a 6 casas decimais é ignorada. Os valores de longitude são baseados na distância do ponto até Greenwich, Inglaterra, onde está localizado o primeiro meridiano. Os valores de latitude e longitude devem corresponder a um local válido na face da Terra. As latitudes podem assumir qualquer valor entre -90 e 90 enquanto os valores de longitude podem assumir qualquer valor entre -180 e 180. Se você especificar um valor de latitude ou longitude inválido, a sua solicitação será rejeitada como uma solicitação inválida. Para informação detalhada consultar a referencia [1]. 3. Conexão com MATLAB Para a Google Maps desde Matlab é necessário adquirir uma chave de acesso que permita a atualização dos mapas sem restrições. Para isso é preciso estabelecer o IP do computador em forma de url (http://192. 168.0.182) e colar ele na pagina http://code.google.com/apis/maps/signup.html onde poderá se obter a chave. Importação das imagens A parte encarregada da importação dos mapas esta conteúda nas seguintes líneas onde se ontem primeiro uma imagem em formato “gif e depois esta é transformada e mostrada como uma imagem em formato verdadeiro [2]. ’ [I map]=imread(address,'gif'); RGB=ind2rgb(I,map); imshow(RGB); Para atualização das imagens as anteriores linhas são as fundamentais sendo acompanhadas das variçoes dos parâmetros no URL.Pode-se observar na imagem 1 um mapa centrado na Cidade de Cali. Transformação de coordenadas Para ter uma correlação entre as coordenadas de vôo e as coordenadas da tela da imagem é necessário fazer uma serie de transformações: Pixeles- Unitário central: as coordenadas originais da imagem importada têm a origem no extremo superior esquerdo ate alcançar à máxima resolução de pixels no extremo inferior direito. Este sistema de coordenadas é trocado por um sistema centrado na imagem de lado unitário, este sistema ainda é de mão esquerda (y-). Coordenadas espaciais-Unitario: Para fazer compatíveis os sistemas se subtrai as coordenadas medias das coordenadas de entrada para centralizar ele. Essas coordenadas são dividas sobre o lado de resolução correspondente ao zoom para normalização unitária. Imagem 1. Mapa Centrado na cidade de Cali. O fluxograma da ferramenta FLUJOGRAMA 3. Trajetória de Prova Para ilustrar o processo da ferramenta de conexão se tomou como dados de entrada as informações de coordenadas apresentadas na tabela 1. Esta trajetória fechada envolve 12 pontos que passam pelos países da Colômbia, Venezuela e Brasil. Latitude 3,454205 4,679360 7,941732 10,513738 8,435425 5,716566 2,817955 0,465815 -3,048365 -4,801985 -4,208369 0,817355 3,454205 Longitude -76.556397 -74.106447 -72.517091 -66.987306 -62.691651 -62.014161 -60.714112 -58.901369 -60.043947 -64.614260 -69.942627 -72.963869 -76.556397 Localização Cali Bogotá Cucuta Caracas Ciudad Guayana Boavista Manaus Leticia La Macarena Cali Tabela 1. Coordenadas da trajetória de prova Os pontos da trajetória foram assinalados de tempo em tempo no mapa como se apresenta na imagem 3. Imagem 3. Trajetória de prova fechada. Referencias [1] Static Maps API V2 Developer Guide, (http://code.google.com/intl/es/apis/maps/ documentation/staticmaps/#Locations) [2] Alireza Fasih, 2008. Google Maps Loader. Matlab Files. [3] Matlab to Google Earth. Código Base desenvolvido para a conexão Matlab-Google Earth clc, clear all coor=[3.454205,-76.556397;%cali 4.679360,-74.106447;%bogota 7.941732,-72.517091;%cucuta 10.513738,-66.987306;%caracas 8.435425,-62.691651; 5.716566,-62.014161; 2.817955,-60.714112;%boavista 0.465815,-58.901369; -3.048365,-60.043947;%manaus -4.801985,-64.614260; -4.208369,-69.942627;%leticia 0.817355,-72.963869;%parrque nacional .... 3.454205,-76.556397];%cali % coordenadas do voo de prova cxy=0.5*(max(coor)+min(coor))%Ponto cental dos dados de entrada lado=0.5*max(max(coor)-min(coor))%Lado de resoluçao dos dados de entrada(faixa) coordez=[coor(:,1)-cxy(1,1),coor(:,2)-cxy(1,2)] zoom=4;%Deve ser escolhido para obter un grau de resolução maior ao %lado zd=180/(2^(zoom))%Graus de resolução para o zoom correspondente cd=coordez./zd%coordenadas normalizdas pelo zoom correspondente key='ABQIAAAAteHND9YP6ctZEpCJsGZpWxRQWo9sWXbVvdU2wQSDpuKctuXhBQYpf8Mm2875572Jwd2ge0XshBKBg'; %chave a ser pedida a Google maps pos='http://maps.google.com/staticmap?center='; address=strcat(pos,num2str(cxy(1)),',',num2str(cxy(2)),'&zoom=',... num2str(zoom+1),'&size=512x512&key=',key) [I map]=imread(address,'gif'); % importa a imagem do endereço em formato gif RGB=ind2rgb(I,map); % converte a imagem em cores verdadeiros(vermelho, verde,azul) imshow(RGB,'xdata',[-1 1],'ydata',[-1 1]); %Loop para geração da trajetoria for i=1:(size(coor,1)-1) hold on plot([cd(i,2) (cd(i+1,2))] ,[-cd(i,1) (-cd(i+1,1))],'-rd','LineWidth',4) pause(3.5)%Intervalo de tempo regular end
Documentos relacionados
Produzindo Mapas com Google Earth
Para que serve? Pode ser usado simplesmente como um gerador de mapas bidimensionais e imagens de satélite ou como um simula...
Leia maisManual de Tecnologia
jargão da internet significa dizer que são mais “leves” –, outros são mais modernos, e outros ainda considerados mais seguros, por exemplo, para realizar procedimentos bancários. Também varia a qua...
Leia mais