You are on page 1of 27

15/04/2011

Google Maps Javascript API V3 Services -

Google Maps JavaScript API V3

Google Maps Javascript API V3 Services


Observao: A Google Maps JavaScript API Verso 3 documentada nestas pginas agora a JavaScript API oficial. A Verso 2 dessa API possui previso oficial de remoo, de acordo com a nossa poltica de remoo. Incentivamos voc a migrar o seu cdigo para esta nova e aprimorada verso! Geocodificao Solicitaes de geocodificao Respostas de geocodificao Resultados de geocdigo Tipos de componentes de endereo Cdigos de status Geocodificao reversa Polarizao da janela de visualizao Polarizao do cdigo de regio Rotas Solicitaes de rota Modos de transporte Sistemas de medidas Como renderizar rotas Cdigos de status de rotas Como exibir o DirectionsResult Objeto DirectionsResults Trajetos Trechos Etapas Como inspecionar o DirectionsResults Como usar pontos de referncia em trajetos Elevao Solicitaes de elevao Solicitaes de elevao de local Solicitaes de elevao de caminho Respostas de elevao Status de elevao Resultados de elevao Exemplos de elevao Street View Como adicionar o Street View ao mapa Panoramas do Street View Recipientes do Street View Locais do Street View Pontos de vista (POV) do Street View Superposies no Street View Eventos do Street View Como personalizar os controles do Street View Como acessar diretamente dados do Street View

Geocodificao
Geocodificao o processo de converso de endereos (como "1600 Amphitheatre Parkway, Mountain View, CA") em coordenadas geogrficas (como latitude 37.423021 e longitude -122.083739), que voc pode usar para colocar marcadores ou posicionar o mapa. A API do Google Maps fornece uma classe de geocodificador para geocodificar endereos dinamicamente a partir da entrada do usurio. Se, em vez disso, voc quiser geocodificar endereos estticos e conhecidos, consulte a documentao do Servio da web de geocodificao.

Solicitaes de geocodificao
O acesso ao servio de geocodificao assncrono, uma vez que a API do Google Maps precisa fazer uma chamada para um servidor externo. Por essa razo, voc precisa passar um mtodo de retorno de chamada a ser executado aps a concluso da solicitao. Esse mtodo de retorno de chamada processa os resultados. O geocodificador

code.google.com/intl//services.html

1/27

15/04/2011
pode retornar mais de um resultado.

Google Maps Javascript API V3 Services -

Voc acessa o servio de geocodificao da API do Google Maps dentro do seu cdigo por meio do objeto google.maps.Geocoder . O mtodo Geocoder.geocode() inicia uma solicitao para o servio de geocodificao, passando um literal de objeto GeocodeRequest , que contm os termos de entrada e um mtodo de retorno de chamada a ser executado ao receber a resposta. O literal de objeto GeocodeRequest contm os seguintes campos: { address: string, latLng: LatLng, bounds: LatLngBounds, language: string, region: string, } Esses campos so explicados abaixo.

address (ob rigatrio) O endereo que deseja geocodificar.* latLng (obrigatrio*) O LatLng para o qual voc deseja obter o endereo mais prximo, legvel para
humanos.

bounds (opcional) O LatLngBounds no qual induzir os resultados de geocdigo com mais destaque.
Para obter mais informaes, consulte Polarizao da janela de visualizao, abaixo. language (opcional) O idioma para os resultados retornados.

region (opcional) O cdigo de regio, especificado como uma subtag de region de idioma IANA. Na
maioria dos casos, essas tags so convertidas diretamente nos valores usuais ccTLD ("domnio de nvel superior") de dois caracteres. Para obter mais informaes, consulte Polarizao do cdigo de regio, abaixo. * Observao: Voc pode passar um address ou latLng para pesquisa. Se voc passar um latLng , o geocodificador realizar o que conhecido como uma geocodificao reversa. Consulte Geocodificao reversa para obter mais informaes. Os parmetros bounds e region influenciaro apenas os resultados do geocodificador, sem restringi-los totalmente.

Respostas de geocodificao
O servio de geocodificao exige um mtodo de retorno de chamada a ser executado aps a recuperao dos resultados do geocodificador. Esse retorno de chamada deve passar dois parmetros para conter results e um cdigo status, nessa ordem. Como Geocoder pode retornar mais de uma entrada, o literal do objeto GeocoderResults uma matriz.

Resultados de geocodificao
O literal do objeto GeocoderResults representa um resultado individual de geocodificao e um objeto com o seguinte formato: results[]: { types[]: string, formatted_address: string, address_components[]: { short_name: string, long_name: string, types[]: string }, geometry: { location: LatLng, location_type: GeocoderLocationType viewport: LatLngBounds, bounds: LatLngBounds } } Esses campos so explicados abaixo:

types[] uma matriz que indica o tipo do resultado retornado. Essa matriz contm um conjunto de uma ou
mais tags que identificam o tipo de recurso retornado no resultado. Por exemplo, um geocdigo de "Chicago" retorna "locality", que indica que "Chicago" uma cidade, e tambm retorna "political", que indica que uma entidade poltica.

formatted_address uma string que contm o endereo legvel para humano deste local. Normalmente,
esse endereo equivalente ao "endereo postal", que algumas vezes diferente de acordo com o pas (em alguns pases, como na Gr Bretanha, a distribuio dos endereos postais verdadeiros no permitida por

code.google.com/intl//services.html

2/27

15/04/2011

Google Maps Javascript API V3 Services -

restries de licena). Esse endereo normalmente composto por um ou mais componentes de endereo. Por exemplo, o endereo "111 8th Avenue, New York, NY" contm componentes de endereo separados para "111 8th Avenue" (um endereo), "New York" (a cidade) e "NY" (o estado americano). Esses componentes de endereo so observados abaixo. Para obter mais informaes sobre os tipos de endereo, consulte Tipos, abaixo.

address_component[] uma matriz que contm os componentes de endereo separados, conforme


explicado acima.

geometry contm as seguintes informaes: location contm o valor de latitude,longitude geocodificado. Retornamos esse local como um objeto LatLng, no como uma string formatada. location_type armazena dados adicionais sobre o local especificado. Os valores a seguir so
suportados no momento:

google.maps.GeocoderLocationType.ROOFTOP indica que o resultado retornado reflete um


geocdigo preciso.

google.maps.GeocoderLocationType.RANGE_INTERPOLATED indica que o resultado


retornado reflete uma aproximao (normalmente em uma estrada) interpolada entre dois pontos precisos (como intersees). Os resultados interpolados normalmente so retornados quando geocdigos "rooftop" no esto disponveis para um endereo. google.maps.GeocoderLocationType.GEOMETRIC_CENTER indica que o resultado retornado o centro geomtrico de um resultado, como uma polilinha (por exemplo, uma rua) ou um polgono(regio). google.maps.GeocoderLocationType.APPROXIMATE indica que o resultado retornado aproximado. viewport armazena a janela de visualizao recomendada para o resultado retornado. bounds (retornado opcionalmente) armazena o LatLngBounds que pode conter totalmente o resultado retornado. Esses limites talvez no correspondam janela de visualizao recomendada. Por exemplo, San Francisco inclui as Ilhas Farallon, que tecnicamente fazem parte da cidade, mas no devem ser retornadas na janela de visualizao.

Tipos de componentes de endereo


A matriz types[] no resultado retornado indica o tipo de endereo. Esses tipos tambm podem ser retornados nas matrizes address_components[] para indicar o tipo de componente de endereo especfico. Endereos dentro do geocodificador podem ter mltiplos tipos, que podem ser considerados "tags". Por exemplo, muitas cidades so marcadas com o tipo political e locality . Os seguintes tipos so suportados e retornados pelo geocodificador HTTP:

street_address indica um endereo preciso. route indica uma rota nomeada (como "US 101"). intersection indica uma interseo principal, normalmente de duas estradas principais. political indica uma entidade poltica. Normalmente, esse tipo indica um polgono de alguma
administrao civil. country indica a entidade poltica nacional, e normalmente o tipo de ordem mais alta retornado por Geocoder. administrative_area_level_1 indica uma entidade civil de primeira ordem abaixo do nvel de pas. Nos Estados Unidos, esses nveis administrativos so estados. Nem todas as naes exibem esses nvei s administrativos. administrative_area_level_2 indica uma entidade civil de segunda ordem abaixo do nvel de pas. Nos Estados Unidos, esses nveis administrativos so municpios. Nem todas as naes exibem esses nveis administrativos. administrative_area_level_3 indica uma entidade civil de terceira ordem abaixo do nvel de pas. Esse tipo indica uma diviso civil menor. Nem todas as naes exibem esses nveis administrativos.

colloquial_area indica um nome alternativo usado comumente para a entidade. locality indica uma cidade ou entidade poltica municipal incorporada. sublocality indica uma entidade civil de primeira ordem abaixo de uma localidade. neighborhood indica um bairro nomeado. premise indica um local nomeado, normalmente um edifcio ou condomnios com um nome comum. subpremise indica uma entidade de primeira ordem abaixo de um local nomeado, normalmente um nico
edifcio dentro de um condomnio com um nome comum.

postal_code indica um cdigo postal, conforme usado para enderear correspondncias dentro do pas. natural_feature indica um recurso natural de destaque. airport indica um aeroporto. park indica um parque nomeado.
Alm dos itens acima, os componentes de endereo podem exibir os seguintes itens:

post_box indica uma caixa postal especfica. street_number indica o nmero exato da rua.

code.google.com/intl//services.html

3/27

15/04/2011
floor indica o andar de um edifcio. room indica a sala de um edifcio. Cdigos de status

Google Maps Javascript API V3 Services -

O cdigo status pode retornar um dos seguintes valores:

google.maps.GeocoderStatus.OK indica que o geocdigo teve xito. google.maps.GeocoderStatus.ZERO_RESULTS indica que o geocdigo teve xito, mas no retornou resultados. Isso pode ocorrer se o geocdigo passou um address ou latng no existente em um local
remoto.

google.maps.GeocoderStatus.OVER_QUERY_LIMIT indica que voc ultrapassou a sua cota. google.maps.GeocoderStatus.REQUEST_DENIED indica que a sua solicitao foi negada por alguma
razo.

google.maps.GeocoderStatus.INVALID_REQUEST normalmente indica que est faltando a consulta (address ou latLng).


Neste exemplo, ns geocodificamos um endereo e colocamos um marcador nos valores de latitude e longitude retornados. O manipulador foi passado como um literal de funo annimo. var geocoder; var map; function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var myOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); } function codeAddress() { var address = document.getElementById("address").value; if (geocoder) { geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { alert("Geocode was not successful for the following reason: " + status); } }); } } <body onload="initialize()"> <div id="map_canvas" style="width: 320px; height: 480px;"></div> <div> <input id="address" type="textbox" value="Sydney, NSW"> <input type="button" value="Encode" onclick="codeAddress()"> </div> </body> Ver exemplo (geocoding-simple.html)

Geocodificao reversa (consulta de endereo)


O termo geocodificao normalmente se refere traduo de um endereo legvel para humanos em uma localizao no mapa. O processo de converso, ou seja, traduo de uma localizao no mapa em um endereo legvel para humanos conhecido como geocodificao reversa. O Geocoder suporta a geocodificao reversa diretamente. Em vez de fornecer um address textual, fornea um par de latitude/longitude separado por vrgula no parmetro latLng . O exemplo a seguir geocodifica um valor de latitude/longitude e centraliza o mapa no local, mostrando uma janela de informaes com o endereo formatado. Retornamos o segundo resultado, que menos especfico do que o primeiro (nesse caso, um nome de bairro): var geocoder;

code.google.com/intl//services.html

4/27

15/04/2011

Google Maps Javascript API V3 Services -

var map; var infowindow = new google.maps.InfoWindow(); var marker; function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(40.730885,-73.997383); var myOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); } function codeLatLng() { var input = document.getElementById("latlng").value; var latlngStr = input.split(",",2); var lat = parseFloat(latlngStr[0]); var lng = parseFloat(latlngStr[1]); var latlng = new google.maps.LatLng(lat, lng); if (geocoder) { geocoder.geocode({'latLng': latlng}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (results[1]) { map.setZoom(11); marker = new google.maps.Marker({ position: latlng, map: map }); infowindow.setContent(results[1].formatted_address); infowindow.open(map, marker); } } else { alert("Geocoder failed due to: " + status); } }); } } No exemplo anterior, ns mostramos o segundo resultado (selecionando results[1] ). O geocodificador reverso normalmente retorna mais de um resultado. Os "endereos" da geocodificao no so apenas endereos postais, mas qualquer forma de nomear geograficamente uma localizao. Por exemplo, ao geocodificar um ponto na cidade de Chicago, o ponto geocodificado pode ser rotulado como um endereo, como a cidade (Chicago), como seu estado (Illinois) ou como um pas (Os Estados Unidos). Todos so endereos para o geocodificador. O geocodificador reverso retorna todos esses resultados. O geocodificador reverso compara entidades polticas (pases, provncias, cidades e bairros), endereos e cdigos postais. A lista completa de endereos retornados pela consulta anterior exibida abaixo. results[0].formatted_address: results[1].formatted_address: results[2].formatted_address: results[3].formatted_address: results[4].formatted_address: results[5].formatted_address: results[6].formatted_address: results[7].formatted_address: "275-291 Bedford Ave, Brooklyn, NY 11211, USA", "Williamsburg, NY, USA", "New York 11211, USA", "Kings, New York, USA", "Brooklyn, New York, USA", "New York, New York, USA", "New York, USA", "United States"

Os endereos so retornados na ordem de melhor a pior correspondncia. Normalmente, o endereo mais exato o resultado mais destacado, como nesse caso. Retornamos tipos diferentes de endereos, desde o mais es pecfico at as entidades polticas menos especficas, como bairros, cidades, municpios, estados etc. Se voc quiser fazer uma correspondncia de um endereo mais geral, convm inspecionar o campo results[].types. Observao: A geocodificao reversa no uma cincia exata. O geocodificador tentar encontrar o local enderevel mais prximo dentro de uma certa tolerncia. Ver exemplo (geocoding-reverse.html)

Polarizao da janela de visualizao


Voc tambm pode instruir o Servio de geocodificao a preferir resultados dentro de uma determinada janela de visualizao (expressa como uma caixa delimitadora). Para isso, configure o parmetro bounds dentro do literal do

code.google.com/intl//services.html

5/27

15/04/2011

Google Maps Javascript API V3 Services -

objeto GeocodeRequest para definir os limites dessa janela de visualizao. Por exemplo, um geocdigo para "Winnetka" normalmente retorna este subrbio de Chicago: { "types":["locality","political"], "formatted_address":"Winnetka, IL, USA", "address_components":[{ "long_name":"Winnetka", "short_name":"Winnetka", "types":["locality","political"] },{ "long_name":"Illinois", "short_name":"IL", "types":["administrative_area_level_1","political"] },{ "long_name":"United States", "short_name":"US", "types":["country","political"] }], "geometry":{ "location":[ -87.7417070, 42.1083080], "location_type":"APPROXIMATE" } } No entanto, especificar um parmetro bounds que define uma caixa delimitadora para San Fernando Valley de Los Angeles resulta neste geocdigo, que retorna o bairro chamado "Winnetka" nesse local: { "types":["sublocality","political"], "formatted_address":"Winnetka, California, USA", "address_components":[{ "long_name":"Winnetka", "short_name":"Winnetka", "types":["sublocality","political"] },{ "long_name":"Los Angeles", "short_name":"Los Angeles", "types":["administrative_area_level_3","political"] },{ "long_name":"Los Angeles", "short_name":"Los Angeles", "types":["administrative_area_level_2","political"] },{ "long_name":"California", "short_name":"CA", "types":["administrative_area_level_1","political"] },{ "long_name":"United States", "short_name":"US", "types":["country","political"] }], "geometry":{ "location": [34.213171,-118.571022], "location_type":"APPROXIMATE" } }

Polarizao do cdigo de regio


Voc tambm pode definir o Servio de geocodificao para retornar resultados polarizados para uma regio especfica usando explicitamente o parmetro region . Este parmetro usa um cdigo de regio, especificado como uma subtag de region de idioma IANA. Na maioria dos casos, essas tags so convertidas diretamente nos valores usuais ccTLD ("domnio de nvel superior") de dois caracteres, como "uk" em "co.uk", por exemplo. Em alguns casos, a tag de region tambm compatvel com cdigos ISO-3166-1, que, s vezes, diferem dos valores ccTLD ("GB" para "Gr-Bretanha", por exemplo). As solicitaes de geocodificao podem ser enviadas para todos os domnios nos quais o aplicativo principal do Google Maps oferece o servio. Por exemplo, um geocdigo para "Toledo" retorna este resultado, pois o domnio padro para o Servio de geocodificao est definido como os Estados Unidos:

code.google.com/intl//services.html

6/27

15/04/2011
{

Google Maps Javascript API V3 Services -

"types":["locality","political"], "formatted_address":"Toledo, OH, USA", "address_components":[{ "long_name":"Toledo", "short_name":"Toledo", "types":["locality","political"] },{ "long_name":"Ohio", "short_name":"OH", "types":["administrative_area_level_1","political"] },{ "long_name":"United States", "short_name":"US", "types":["country","political"] }] } Um geocdigo para "Toledo" com o campo region definido como 'es' (Espanha) retornar apenas a cidade espanhola: { "types":["locality","political"], "formatted_address":"Toledo, Espaa", "address_components":[{ "long_name":"Toledo", "short_name":"Toledo", "types":["locality","political"] },{ "long_name":"Toledo", "short_name":"TO", "types":["administrative_area_level_2","political"] },{ "long_name":"Castilla-La Mancha", "short_name":"CM", "types":["administrative_area_level_1","political"] },{ "long_name":"Espaa", "short_name":"ES", "types":["country","political"] }] }

Rotas
Observao: Com base nos comentrios dos desenvolvedores, decidimos renomear os antigos elementos "viagem" como "trajeto". Do mesmo modo, os antigos elementos "trajeto" (que se referiam a trechos de uma viagem especificada) foram renomeados como "trecho". Esperamos que voc ache esses novos nomes mais claros, mas tambm entendemos que os novos nomes podem causar alguns inconvenientes para desenvolvedores que usavam com o cdigo antigo. Os campos existentes compatveis com os antigos elem entos "viagem" e "trajeto" possuem previso de remoo e, por isso, sugerimos que voc migre o seu cdigo para usar esses campos renomeados o quanto antes. Pretendemos suspender o suporte aos nomes antigos em 1 de maio de 2010. Voc pode calcular rotas (com diferentes meios de transporte) usando o objeto DirectionsService. Esse objeto se comunica com o Servio de rotas da Google Maps API que recebe solicitaes de rota e retorna resultados calculados. Voc pode manipular esses resultados de rota manualmente ou usar o objeto DirectionsRenderer para renderizar esses resultados. As rotas podem especificar origens e destinos como strings de texto (por exemplo, "Chicago, IL" ou "Darwin, NSW, Austrlia") ou como valores de LatLng . O servio de rotas pode retornar rotas com vrias partes. Para isso, ele usa uma srie de pontos de referncia. As rotas so exibidas como uma polilinha que desenha o trajeto em um mapa ou, adicionalmente, como uma srie de descries textuais em um elemento <div> (por exemplo, "Vire direita na via de acesso Williamsburg Bridge").

Solicitaes de rota
O acesso ao servio de rotas assncrono, pois a Google Maps API precisa fazer uma chamada para um servidor externo. Por essa razo, voc precisa passar um mtodo de retorno de chamada a ser executado aps a concluso da solicitao. Esse mtodo de retorno de chamada dever processar os resultados. O servio de rotas pode retornar

code.google.com/intl//services.html

7/27

15/04/2011

Google Maps Javascript API V3 Services -

mais de um itinerrio possvel como uma matriz de routes[] diferentes. Para usar rotas em V3, crie um objeto do tipo DirectionsService e chame DirectionsService.route() para iniciar uma solicitao ao servio de rotas, passando-a como um literal do objeto DirectionsRequest contendo os termos de entrada e um mtodo de retorno de chamada a ser executado no recebimento da resposta. O literal do objeto DirectionsRequest contm os seguintes campos: { origin: LatLng | String, destination: LatLng | String, travelMode: DirectionsTravelMode, unitSystem: DirectionsUnitSystem, waypoints[]: DirectionsWaypoint, optimizeWaypoints: Boolean, provideRouteAlternatives: Boolean, avoidHighways: Boolean, avoidTolls: Boolean region: String } Esses campos so explicados abaixo:

origin(obrigatrio) especifica o local inicial a partir do qual a rota deve ser calculada. Este valor pode ser especificado como uma String (por exemplo, "Chicago, IL") ou como um valor de LatLng. destination (ob rigatrio) especifica o local final para o qual a rota deve ser calculada. Este valor pode ser especificado como uma String (por exemplo, "Chicago, IL") ou como um valor de LatLng. travelMode(obrigatrio) especifica qual modo de transporte usar ao calcular a rota. Os valores esto
especificados em Modos de transporte, abaixo.

unitSystem(opcional) especifica qual sistema de medidas usar ao exibir resultados. Os valores vlidos
esto especificados em Sistemas de medidas , abaixo.

waypoints[] (opcional) especifica uma matriz de DirectionsWaypoints. Os pontos de referncia


alteram um trajeto traando-o pelos locais especificados. Um ponto de referncia especificado como um literal de objeto com os campos mostrados abaixo:

location especifica o local do ponto de referncia, como um valor de LatLng ou como uma String
que ser geocodificada. stopover um valor booliano que indica que o ponto de referncia uma parada no trajeto, o que resulta na diviso do trajeto em dois. Para obter mais informaes sobre pontos de referncia, consulte Como usar pontos de referncia em trajetos, abaixo.

optimizeWaypoints (opcional) especifica que o trajeto que est usando os waypoints fornecidos pode ser otimizado para oferecer o trajeto mais curto possvel. Se este campo for definido como true , o servio de rotas retornar os waypoints reordenados em um campo waypoint_order .Para obter mais informaes,
consulte Como usar pontos de referncia em trajetos , abaixo. provideRouteAlternatives(opcional), quando este campo definido como true, ele especifica que o servio de rotas pode fornecer mais de uma opo de trajeto na resposta. Observe que fornecer trajetos alternativos para a rota pode aumentar o tempo de resposta do servidor. avoidHighways (opcional), quando este campo definido como true, ele indica que os trajetos calculados devem evitar as principais rodovias, se possvel. avoidTolls(opcional), quando este campo definido como true , ele indica que os trajetos calculados devem evitar estradas com pedgios, se possvel.

region (opcional) especifica o cdigo de pas, apresentado como um valor ccTLD ("domnio de nvel superior")
de dois caracteres. Para obter mais informaes, consulte Polarizao de regio, abaixo. Veja a seguir um exemplo do objeto DirectionsRequest : { origin: "Chicago, IL", destination: "Los Angeles, CA", waypoints: [ { location:"Joplin, MO", stopover:false },{ location:"Oklahoma City, OK", stopover:true }], provideRouteAlternatives: false, travelMode: DirectionsTravelMode.DRIVING, unitSystem: DirectionsUnitSystem.IMPERIAL

code.google.com/intl//services.html

8/27

15/04/2011
}

Google Maps Javascript API V3 Services -

Modos de transporte
Ao calcular rotas, voc precisa especificar o modo de transporte a ser usado. Atualmente, os seguintes modos de transporte so suportados:

DirectionsTravelMode.DRIVING indica as rotas de carro padro usando a malha de transporte


rodovirio.

DirectionsTravelMode.WALKING solicita rotas a p por faixas de pedestre e caladas (quando


disponvel). Novo!DirectionsTravelMode.BICYLING solicita rotas de ciclismo por ciclovias e ruas preferenciais para ciclistas (atualmente, disponvel apenas nos EUA). Observao: s vezes, as rotas a p podem no incluir caminhos exatos para pedestres e, como resultado, retornaro avisos no DirectionsResult que devero ser exibidos se voc no estiver usando o DirectionsRenderer padro.

Sistemas de medidas
Por padro, as rotas so calculadas e exibidas usando o sistema de medidas do pas ou regio de origem. Por exemplo, um trajeto de "Chicago, IL" para "Toronto, ONT" exibir resultados em milhas, enquanto o trajeto reverso exibir resultados em quilmetros. Voc pode substituir esse sistema de medidas configurando explicitamente um sistema de medidas dentro da solicitao usando um dos valores de DirectionsUnitSystem a seguir:

DirectionsUnitSystem.METRIC especifica o uso do sistema mtrico. As distncias so mostradas em


quilmetros.

DirectionsUnitSystem.IMPERIAL especifica o uso do sistema imperial (ingls). As distncias so


mostradas em milhas. Observao: Esta configurao do sistema de medidas afeta apenas o texto exibido ao usurio. O resultado de rota tambm contm valores de distncia no mostrados ao usurio e que so sempre expressos em metros.

Polarizao de regio para rotas


O Servio de rotas da Google Maps API retorna resultados de endereo influenciados pelo domnio (regio ou pas) a partir do qual voc carregou o inicializador do Javascript. Como a maioria dos usurios carregam http://maps.google.com/, ele define um domnio implcito para os Estados Unidos. Se o inicializador for carregado a partir de outro domnio suportado, voc obter resultados influenciados por esse domnio. Por exemplo, pesquisas por "So Francisco" podem retornar resultados diferentes para aplicativos que carregam http://maps.google.com/ (Estados Unidos) e aplicativos que carregam http://maps.google.es/ (Espanha). Voc tambm pode definir o Servio de rotas para retornar resultados polarizados para uma regio especfica usando o parmetro region . Este parmetro usa um cdigo de regio, especificado como uma subtag de region de idioma IANA. Na maioria dos casos, essas tags so convertidas diretamente em valores ccTLD ("domnio de nvel superior") de dois caracteres, como "uk" em "co.uk", por exemplo. Em alguns casos, a tag de region tambm compatvel com cdigos ISO-3166-1, que, s vezes, diferem dos valores ccTLD ("GB" para "Gr-Bretanha", por exemplo). Consulte a planilha de cobertura do Google Maps para determinar o nvel de cobertura suportado por um pas para o recurso de rotas.

Como renderizar rotas


Iniciar uma solicitao de rota para o DirectionsService com o mtodo route() requer a passagem de um retorno de chamada que ser executado na concluso da solicitao de servio. Esse retorno de chamada retornar um cdigo de DirectionsResult e de DirectionsStatus na resposta.

Status da consulta de rota


O DirectionsStatus pode retornar os seguintes valores:

OK indica que a resposta contm um DirectionsResult vlido. NOT_FOUND indica que pelo menos um dos locais especificados na origem, destino ou nos pontos de
referncia da solicitao no pde ser geocodificado.

ZERO_RESULTS indica que no foi possvel encontrar nenhum trajeto entre a origem e o destino. MAX_WAYPOINTS_EXCEEDED indica que muitos DirectionsWaypoints foram fornecidos no DirectionsRequest . O mximo permitido de pontos de referncia 8, mais a origem e o destino. Para
clientes da Google Maps API Premier, so permitidos 23 pontos de referncia, mais a origem e o destino. INVALID_REQUEST indica que o DirectionsRequest fornecido era invlido.

OVER_QUERY_LIMIT indica que a pgina web enviou solicitaes em excesso dentro do perodo de tempo
permitido.

REQUEST_DENIED indica que a pgina web no tem permisso para usar o servio de rotas. UNKNOWN_ERROR indica que no foi possvel processar uma solicitao de rota devido a um erro do servidor. A
solicitao pode ser realizada corretamente se voc tentar de novo.

code.google.com/intl//services.html

9/27

15/04/2011

Google Maps Javascript API V3 Services -

Voc deve garantir que a consulta de rota retorne resultados vlidos verificando esse valor antes de processar o resultado.

Como exibir o DirectionsResult


O DirectionsResult contm o resultado da consulta de rota, que voc pode manipular manualmente ou passar para um objeto DirectionsRenderer , que pode manipul-lo automaticamente exibindo o resultado em um mapa. Para exibir um DirectionsResult usando um DirectionsRenderer , basta fazer o seguinte: 1. Crie um objeto DirectionsRenderer. 2. Chame setMap() no renderizador para vincul-lo ao mapa passado. 3. Chame setDirections() no renderizador, passando a ele o DirectionsResult , como indicado acima. Como o renderizador um MVCObject, ele detectar automaticamente quaisquer alteraes em suas propriedades e atualizar o mapa quando suas rotas associadas forem alteradas. O exemplo a seguir calcula rotas entre dois locais na rodovia Route 66, onde a origem e o destino so definidos pelos valores de "start" e "end" especificados nas listas suspensas. O DirectionsRenderer responsvel pela exibio da polilinha entre os locais indicados e por posicionar os marcadores na origem, destino e pontos de referncia, se aplicvel. var directionDisplay; var directionsService = new google.maps.DirectionsService(); var map; function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var chicago = new google.maps.LatLng(41.850033, -87.6500523); var myOptions = { zoom:7, mapTypeId: google.maps.MapTypeId.ROADMAP, center: chicago } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); directionsDisplay.setMap(map); } function calcRoute() { var start = document.getElementById("start").value; var end = document.getElementById("end").value; var request = { origin:start, destination:end, travelMode: google.maps.DirectionsTravelMode.DRIVING }; directionsService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); } }); } <div> <b>Start: </b> <select id="start" onchange="calcRoute();"> <option value="chicago, il">Chicago</option> <option value="st louis, mo">St Louis</option> <option value="joplin, mo">Joplin, MO</option> <option value="oklahoma city, ok">Oklahoma City</option> <option value="amarillo, tx">Amarillo</option> <option value="gallup, nm">Gallup, NM</option> <option value="flagstaff, az">Flagstaff, AZ</option> <option value="winona, az">Winona</option> <option value="kingman, az">Kingman</option> <option value="barstow, ca">Barstow</option> <option value="san bernardino, ca">San Bernardino</option> <option value="los angeles, ca">Los Angeles</option> </select> <b>End: </b> <select id="end" onchange="calcRoute();"> <option value="chicago, il">Chicago</option> <option value="st louis, mo">St Louis</option> <option value="joplin, mo">Joplin, MO</option> <option value="oklahoma city, ok">Oklahoma City</option>

code.google.com/intl//services.html

10/27

15/04/2011
<option <option <option <option <option <option <option <option </select> </div>

Google Maps Javascript API V3 Services -


value="amarillo, tx">Amarillo</option> value="gallup, nm">Gallup, NM</option> value="flagstaff, az">Flagstaff, AZ</option> value="winona, az">Winona</option> value="kingman, az">Kingman</option> value="barstow, ca">Barstow</option> value="san bernardino, ca">San Bernardino</option> value="los angeles, ca">Los Angeles</option>

Ver exemplo (directions-simple.html) O exemplo a seguir mostra rotas que usam diferentes modos de transporte entre Haight-Ashbury e Ocean Beach em So Francisco, CA: var var var var var directionDisplay; directionsService = new google.maps.DirectionsService(); map; haight = new google.maps.LatLng(37.7699298, -122.4469157); oceanBeach = new google.maps.LatLng(37.7683909618184, -122.51089453697205);

function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var myOptions = { zoom: 14, mapTypeId: google.maps.MapTypeId.ROADMAP, center: haight } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); directionsDisplay.setMap(map); } function calcRoute() { var selectedMode = document.getElementById("mode").value; var request = { origin: haight, destination: oceanBeach, // Note that Javascript allows us to access the constant // using square brackets and a string value as its // "property." travelMode: google.maps.DirectionsTravelMode[selectedMode] }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); } }); } <div> <b>Mode of Travel: </b> <select id="mode" onchange="calcRoute();"> <option value="DRIVING">Driving</option> <option value="WALKING">Walking</option> <option value="BICYCLING">Bicycling</option> </select> </div> Ver exemplo (directions-travel-modes.html) Um DirectionsRenderer no somente manipula a exibio da polilinha e dos marcadores associados, como tambm pode manipular a exibio textual de rotas na forma de uma srie de etapas. Para isso, basta chamar setPanel() no seu DirectionsRenderer, passando o <div> no qual essas informaes devem ser exibidas. Isso tambm garante a exibio das respectivas informaes de direitos autorais e de quais quer avisos que possam estar associados ao resultado. As rotas textuais sero fornecidas no idioma preferido do navegador ou no idioma especificado quando a JavaScript API foi carregada usando o parmetro language . Para obter mais informaes, consulte Localizao. O exemplo a seguir idntico ao mostrado acima, mas inclui um painel <div> no qual as rotas so exibidas: var directionDisplay; var directionsService = new google.maps.DirectionsService(); var map;

code.google.com/intl//services.html

11/27

15/04/2011

Google Maps Javascript API V3 Services -

function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var chicago = new google.maps.LatLng(41.850033, -87.6500523); var myOptions = { zoom:7, mapTypeId: google.maps.MapTypeId.ROADMAP, center: chicago } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); directionsDisplay.setMap(map); directionsDisplay.setPanel(document.getElementById("directionsPanel")); } function calcRoute() { var start = document.getElementById("start").value; var end = document.getElementById("end").value; var request = { origin:start, destination:end, travelMode: google.maps.DirectionsTravelMode.DRIVING }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); } }); } // select UI elements omitted <div><div id="map_canvas" style="float:left;width:70%; height:100%"></div> <div id="directionsPanel" style="float:right;width:30%;height 100%"></div> Ver exemplo (directions-panel.html)

Objeto Directions Results


Ao enviar uma solicitao de rotas ao DirectionsService, voc recebe uma resposta composta de um cdigo de status e um resultado, que um objeto DirectionsResult. O DirectionsResult um literal de objeto com um nico campo:

routes[] contm uma matriz de objetos DirectionsRoute. Cada trajeto indica um modo de ir da origem ao destino, fornecido no DirectionsRequest . Geralmente, apenas um trajeto retornado para qualquer solicitao especificada, a menos que o campo provideRouteAlternatives da solicitao esteja definido como true , o que permite que vrios trajetos sejam retornados. Trajetos de rotas
O antigo objeto DirectionsTrip foi renomeado como DirectionsRoute. Agora, um trajeto se refere jornada completa do incio ao fim, em vez de se referir apenas a um trecho de uma viagem pai. Um DirectionsRoute contm um nico resultado da origem e do destino especificados. Esse trajeto pode ser composto de um ou mais trechos (do tipo DirectionsLeg ), o que determinado pela especificao de pontos de referncia. Alm disso, o trajeto tambm contm informaes de direitos autorais e avisos que devem ser exibidas ao usurio juntamente com as informaes de trajeto. O DirectionsRoute um literal de objeto que contm os seguintes campos:

legs[] contm uma matriz de objetos DirectionsLeg, cada um deles contendo informaes sobre um
trecho do trajeto determinado a partir de dois locais dentro do trajeto especificado. Um trecho diferente estar presente para cada ponto de referncia ou destino especificado. Um trajeto sem pontos de referncia conter apenas um DirectionsLeg. Cada trecho composto de uma srie de DirectionSteps. waypoint_order contm uma matriz que indica a ordem dos pontos de referncia no trajeto calculado. Essa matriz pode conter uma ordem diferente se o DirectionsRequest tiver recebido optimizeWaypoints: true. overview_path consiste de uma matriz de LatLng s que representam um caminho aproximado (suavizado) das rotas resultantes.

bounds contm um LatLngBounds indicando os limites da polilinha ao longo deste trajeto especificado. copyrights contm o texto de direitos autorais a ser exibido para este trajeto. Se voc no usar o objeto DirectionsRenderer fornecido, dever manipular e exibir essas informaes manualmente. warnings[] contm uma matriz de avisos que sero exibidos quando essas rotas foram mostradas. Se voc no usar o objeto DirectionsRenderer fornecido, dever manipular e exibir esses avisos manualmente. Trechos de rotas

code.google.com/intl//services.html

12/27

15/04/2011

Google Maps Javascript API V3 Services -

O antigo objeto DirectionsRoute foi renomeado como DirectionsLeg . Um trecho se refere a um trecho de um trajeto pai. Um DirectionsLeg define um nico trecho de um caminho (da origem ao destino) no trajeto calculado. Os trajetos que no contm pontos de referncia so formados por um nico "trecho", mas os trajetos que definem um ou mais pontos de referncia so formados por um ou mais trechos, que correspondem aos trechos especficos do caminho. O DirectionsLeg um literal de objeto que contm os seguintes campos:

steps[] contm uma matriz de objetos DirectionsStep com informaes sobre cada etapa especfica do
trecho do caminho.

distance indica a distncia total coberta por este trecho, como um objeto DirectionsDistance com o
seguinte formato:

value indica a distncia em metros. text contm uma string que representa a distncia, que, por padro, exibida com a mesma unidade de
medida usada na origem. Por exemplo, a unidade de distncia milha ser usada para qualquer origem dentro dos Estados Unidos. Voc pode substituir esse sistema de medidas definindo especificamente um DirectionsUnitSystem na consulta original. Independentemente do sistema de medidas usado, o campo distance.value sempre conter um valor expresso em metros. Esses campos podem ser omitidos se a distncia for desconhecida.

duration indica a durao total deste trecho, como um objeto DirectionsDuration com o seguinte
formato:

value indica a durao em segundos. text contm uma string que representa a durao.
Esses campos podem ser omitidos se a durao for desconhecida.

start_location contm a LatLng da origem deste trecho. Como o Servio da web de rotas calcula rotas
entre locais usando a opo de transporte mais prxima (geralmente uma estrada) do ponto inicial e final, o campo start_location pode ser diferente da origem fornecida para este trecho se, por exemplo, no houver uma estrada prxima da origem.

end_location contm a LatLng do destino deste trecho. Como o DirectionsService calcula rotas
entre locais usando a opo de transporte mais prxima (geralmente uma estrada) do ponto inicial e final, o campo end_location pode ser diferente do destino fornecido para este trecho se, por exemplo, no houver uma estrada prxima do destino. start_address contm o endereo legvel (geralmente uma rua) do ponto inicial deste trecho.

end_address contm o endereo legvel (geralmente uma rua) do ponto final deste trecho. Etapas de rotas
Uma DirectionsStep a menor unidade de uma rota e contm uma nica etapa que descreve uma instruo nica e especfica do caminho. (por exemplo, "Vire esquerda na Rua Augusta"). A etapa no apenas descreve a instruo, mas tambm contm informaes de distncia e durao que indicam como essa etapa est relacionada prxima etapa. Por exemplo, uma etapa indicada como "Entre na Rodovia dos Bandeirantes" pode conter uma distncia de "37 milhas" e uma durao de "40 minutos", indicando que a prxima etapa est a 37 milhas/40 minutos da etapa atual. O DirectionsStep um literal de objeto que contm os seguintes campos:

instructions contm instrues para esta etapa dentro de uma string de texto. distance contm a distncia coberta por esta etapa at a prxima etapa, como um DirectionsDistance. Consulte a descrio em DirectionsLeg, acima. Este campo pode ficar
indefinido se a distncia for desconhecida.

duration contm o tempo normalmente necessrio para realizar a etapa atual e atingir a prxima, como um objeto DirectionsDuration . Consulte a descrio em DirectionsLeg , acima. Este campo pode ficar
indefinido se a durao for desconhecida.

start_location contm a LatLng geocodificada do ponto inicial desta etapa. end_location contm a LatLng do ponto final desta etapa.

Como inspecionar DirectionsResults


Os componentes do DirectionsResults DirectionsRoute, DirectionsLeg e DirectionsStep podem ser inspecionados e usados na anlise de qualquer resposta de rota. O exemplo a seguir apresenta rotas a p para atraes tursticas na cidade de Nova York. Inspecionam os o DirectionsStep do trajeto para adicionar marcadores para cada etapa e anexar informaes a um InfoWindow com texto instrucional para esta etapa. Observao: Como estamos calculando rotas a p, tambm exibimos os avisos para o usurio em outro painel <div> . var map;

code.google.com/intl//services.html

13/27

15/04/2011
var var var var directionDisplay; directionsService; stepDisplay; markerArray = [];

Google Maps Javascript API V3 Services -

function initialize() { // Instantiate a directions service. directionsService = new google.maps.DirectionsService(); // Create a map and center it on Manhattan. var manhattan = new google.maps.LatLng(40.7711329, -73.9741874); var myOptions = { zoom: 13, mapTypeId: google.maps.MapTypeId.ROADMAP, center: manhattan } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); // Create a renderer for directions and bind it to the map. var rendererOptions = { map: map } directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions) // Instantiate an info window to hold step text. stepDisplay = new google.maps.InfoWindow(); } function calcRoute() { // First, clear out any existing markerArray // from previous calculations. for (i = 0; i < markerArray.length; i++) { markerArray[i].setMap(null); } // Retrieve the start and end locations and create // a DirectionsRequest using WALKING directions. var start = document.getElementById("start").value; var end = document.getElementById("end").value; var request = { origin: start, destination: end, travelMode: google.maps.DirectionsTravelMode.WALKING }; // Route the directions and pass the response to a // function to create markers for each step. directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { var warnings = document.getElementById("warnings_panel"); warnings.innerHTML = "" + response.routes[0].warnings + ""; directionsDisplay.setDirections(response); showSteps(response); } }); } function showSteps(directionResult) { // For each step, place a marker, and add the text to the marker's // info window. Also attach the marker to an array so we // can keep track of it and remove it when calculating new // routes. var myRoute = directionResult.routes[0].legs[0]; for (var i = 0; i < myRoute.steps.length; i++) { var marker = new google.maps.Marker({ position: myRoute.steps[i].start_point, map: map }); attachInstructionText(marker, myRoute.steps[i].instructions); markerArray[i] = marker; } }

code.google.com/intl//services.html

14/27

15/04/2011

Google Maps Javascript API V3 Services -

function attachInstructionText(marker, text) { google.maps.event.addListener(marker, 'click', function() { stepDisplay.setContent(text); stepDisplay.open(map, marker); }); } <div> <b>Start: </b> <select id="start"> <option value="penn station, new york, ny">Penn Station</option> <option value="grand central station, new york, ny">Grand Central Station</option> <option value="625 8th Avenue New York NY 10018">Port Authority Bus Terminal</option> <option value="staten island ferry terminal, new york, ny">Staten Island Ferry Terminal</option> <option value="101 E 125th Street, New York, NY">Harlem - 125th St Station</option> </select> <b>End: </b> <select id="end" onchange="calcRoute();"> <option value="260 Broadway New York NY 10007">City Hall</option> <option value="W 49th St & 5th Ave, New York, NY 10020">Rockefeller Center</option> <option value="moma, New York, NY">MOMA</option> <option value="350 5th Ave, New York, NY, 10118">Empire State Building</option> <option value="253 West 125th Street, New York, NY">Apollo Theatre</option> <option value="1 Wall St, New York, NY">Wall St</option> </select> <div> Ver exemplo (directions-complex.html)

Como usar pontos de referncia em trajetos


Conforme explicado em DirectionsRequest, voc tambm pode especificar pontos de referncia (do tipo DirectionsWaypoint ) ao calcular trajetos usando o servio de rotas. Os pontos de referncia permitem que voc calcule trajetos que incluem locais adicionais e, nesse caso, a rota retornada passar pelos pontos de referncia especificados. Um waypoint composto dos seguintes campos:

location (obrigatrio) especifica o endereo do ponto de referncia. stopover (opcional) indica se este ponto de referncia uma parada real no trajeto ( true) ou apenas uma preferncia por usar o local indicado ( false). Por padro, os campos stopover so definidos como true .
Por padro, o servio de Rotas calcula um trajeto que inclui os pontos de referncia fornecidos na ordem indicada. Como opo, voc pode passar optimizeWaypoints: true dentro do parmetro DirectionsRequest para permitir que o servio de Rotas otimize o trajeto fornecido reorganizando os pontos de referncia em uma ordem mais eficaz. Essa otimizao uma aplicao do Problema do caixeiro viajante. Todos os pontos de referncia devem representar pontos de parada com base nos quais o servio de Rotas ir otimizar seus trajetos. Se voc instruir o servio de Rotas a otimizar a ordem de seus pontos de referncia, a ordem ser retornada no campo optimized_waypoints_order dentro do objeto DirectionsResult. O exemplo a seguir calcula trajetos pelos Estados Unidos usando diferentes pontos iniciais, pontos finais e pontos de referncia. Para selecionar vrios pontos de referncia, mantenha a tecla Ctrl pressionada e clique nos pontos de desejados ao selecionar itens na lista. routes.start_geocode.formatted_address e routes.end_geocode.formatted_address so inspecionados para fornecer o texto para cada ponto inicial e final do trajeto. var directionDisplay; var directionsService = new google.maps.DirectionsService(); var map; function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var chicago = new google.maps.LatLng(41.850033, -87.6500523); var myOptions = { zoom: 6, mapTypeId: google.maps.MapTypeId.ROADMAP, center: chicago } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); directionsDisplay.setMap(map); } function calcRoute() {

code.google.com/intl//services.html

15/27

15/04/2011

Google Maps Javascript API V3 Services -

var start = document.getElementById("start").value; var end = document.getElementById("end").value; var waypts = []; var checkboxArray = document.getElementById("waypoints"); for (var i = 0; i < checkboxArray.length; i++) { if (checkboxArray.options[i].selected == true) { waypts.push({ location:checkboxArray[i].value, stopover:true }); } } var request = { origin: start, destination: end, waypoints: waypts, optimizeWaypoints: true, travelMode: google.maps.DirectionsTravelMode.DRIVING }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); var route = response.routes[0]; var summaryPanel = document.getElementById("directions_panel"); summaryPanel.innerHTML = ""; // For each route, display summary information. for (var i = 0; i < route.legs.length; i++) { var routeSegment = i+1; summaryPanel.innerHTML += "<b>Route Segment: " + routeSegment + "</b><br />"; summaryPanel.innerHTML += route.legs[i].start_geocode.formatted_address + " to "; summaryPanel.innerHTML += route.legs[i].end_geocode.formatted_address + "<br />"; summaryPanel.innerHTML += route.legs[i].distance.text + "<br /><br />"; } } }); } Ver exemplo (directions-waypoints.html)

Elevao
O servio de elevao fornece dados de elevao para locais na superfcie da Terra, incluindo locais em solos ocenicos (que retornam valores negativos). Em casos como esse, para os quais o Google no possui medidas de elevao precisas para o local exato da sua solicitao, o servio intervir e retornar um valor aproximado usando os quatro locais mais prximos. O objeto ElevationService fornece uma interface simples para consultas de locais na Terra e obteno de dados de elevao. Voc tambm pode solicitar dados de elevao com base em pontos de amostragem ao longo dos caminhos e calcular mudanas na elevao equidistante dos trajetos. O objeto ElevationService se comunica com o Servio de elevao da Google Maps API que recebe solicitaes de elevao e retorna dados de elevao. Com o servio de elevao, voc pode desenvolver aplicativos de caminhada e ciclismo, aplicativos de posicionamento para celular ou aplicativos de pesquisa de opinio de baixa resoluo.

Solicitaes de elevao
O acesso ao servio de elevao assncrono, pois a Google Maps API precisa fazer uma chamada para um servidor externo. Por essa razo, voc precisa passar um mtodo de retorno de chamada a ser executado aps a concluso da solicitao. Esse mtodo de retorno de chamada dever processar os resultados. O servio de elevao retorna um cdigo de status (ElevationStatus) e uma matriz de objetos ElevationResult diferentes. O ElevationService suporta dois tipos de solicitaes: Solicitaes para locais diferentes e especficos usando o mtodo getElevationForLocations() , que recebe uma lista de um ou mais locais usando um objeto LocationElevationRequest . Solicitaes para elevao em vrios pontos conectados ao longo de um caminho usando o mtodo getElevationAlongPath() , que recebe um conjunto ordenado de vrtices de caminho dentro de um objeto PathElevationRequest . Ao solicitar elevaes ao longo de caminhos, voc tambm precisa passar um parmetro indicando quantos pontos de amostragem voc gostaria de usar ao longo do caminho. Cada um desses mtodos tambm passa um mtodo de retorno de chamada para manipular os objetos ElevationResult e ElevationStatus retornados.

code.google.com/intl//services.html

16/27

15/04/2011
Solicitaes de elevao de local

Google Maps Javascript API V3 Services -

Um literal do objeto LocationElevationRequest contm o seguinte campo: { locations[]: LatLng }

locations (obrigatrio) define os locais na Terra sobre os quais dados de elevao devero ser retornados. Es te parmetro usa uma matriz de LatLngs.
Voc pode passar qualquer nmero de coordenadas mltiplas dentro de uma matriz, contanto que no exceda as cotas do servio. Observe que ao passar coordenadas mltiplas, a preciso de algum dado retornado pode ser menor do que ao solicitar dados para uma coordenada individual.

Solicitaes para caminhos com amostragem


Um literal do objeto PathElevationRequest contm os seguintes campos: { path[]: LatLng, samples: Number } Esses campos so explicados abaixo:

path (obrigatrio) define um caminho na Terra sobre o qual dados de elevao devero ser retornados. O parmetro path define um conjunto de dois ou mais pares (latitude, longitude) ordenados usando uma matriz de dois ou mais objetos LatLng . samples (obrigatrio) especifica o nmero de pontos de amostragem ao longo do caminho para os quais dados de elevao devero ser retornados. O parmetro samples divide o path especificado em um conjunto
ordenado de pontos equidistantes ao longo do caminho. Assim como ocorre com as solicitaes posicionais, o parmetro path especifica um grupo de valores de latitude e longitude. No entanto, ao contrrio das solicitaes posicionais, o parmetro path especifica um conjunto ordenado de vrtices. Em vez de retornar dados de elevao nos vrtices, as solicitaes de caminho usam pontos de amostragemao longo da extenso do caminho, sendo cada ponto de amostragem equidistante do um do outro (inclusive dos pontos de extremidade).

Respostas de elevao
Para cada solicitao vlida, o servio de Elevao retornar para o retorno de chamada definido um conjunto de objetos ElevationResult juntamente com um objeto ElevationStatus.

Status de elevao
Cada solicitao de elevao retorna um cdigo de ElevationStatus dentro da sua funo de retorno de chamada. Esse cdigo de status conter um dos seguintes valores:

OK: indica que a solicitao do servio foi realizada corretamente INVALID_REQUEST : indica que a solicitao do servio estava incorreta OVER_QUERY_LIMIT: indica que o solicitante excedeu a cota REQUEST_DENIED: indica que o servio no concluiu a solicitao, provavelmente por causa de um parmetro
invlido

UNKNOWN_ERROR : indica um erro desconhecido


Para confirmar se o retorno de chamada foi processado corretamente, verifique o cdigo de status de google.maps.ElevationStatus.OK .

Resultados de elevao
Quando a operao for concluda, o argumento results da sua funo de retorno de chamada conter um conjunto de objetos ElevationResult. Esses objetos contm os seguintes elementos: Um elemento location (contendo objetos LatLng) da posio para a qual os dados de elevao esto sendo calculados. Observe que para solicitaes de caminho, o conjunto de elementos location conter os pontos de amostragem definidos ao longo do caminho. Um elemento elevation indicando a elevao do local em metros.

Exemplos de elevao
O cdigo a seguir converte um clique em um mapa em uma solicitao de elevao usando o objeto LocationElevationRequest :

code.google.com/intl//services.html

17/27

15/04/2011
var var var var

Google Maps Javascript API V3 Services -

elevator; map; infowindow = new google.maps.InfoWindow(); denali = new google.maps.LatLng(63.3333333, -150.5);

function initialize() { var myOptions = { zoom: 8, center: denali, mapTypeId: 'terrain' } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); // Create an ElevationService elevator = new google.maps.ElevationService(); // Add a listener for the click event and call getElevation on that location google.maps.event.addListener(map, 'click', getElevation); } function getElevation(event) { var locations = []; // Retrieve the clicked location and push it on the array var clickedLocation = event.latLng; locations.push(clickedLocation); // Create a LocationElevationRequest object using the array's one value var positionalRequest = { 'locations': locations } // Initiate the location request if (elevator) { elevator.getElevationForLocations(positionalRequest, function(results, status) { if (status == google.maps.ElevationStatus.OK) { // Retrieve the first result if (results[0]) { // Open an info window indicating the elevation at the clicked position infowindow.setContent("The elevation at this point is " + results[0].elevation + " meters."); infowindow.setPosition(clickedLocation); infowindow.open(map); } else { alert("No results found"); } } else { alert("Elevation service failed due to: " + status); } }); } } Ver exemplo (elevation-simple.html) O exemplo a seguir constri uma polilinha por meio de um conjunto de coordenadas especificado e exibe dados de elevao ao longo do caminho usando a Google Visualization API. preciso carregar essa API usando o Carregador comum do Google. Uma solicitao de elevao construda usando o PathElevationRequest : var var var var var elevator; map; chart; infowindow = new google.maps.InfoWindow(); polyline;

// The following path marks a general path from Mt. // Whitney, the highest point in the continental United // States to Badwater, Death Vallet, the lowest point. var whitney = new google.maps.LatLng(36.578581, -118.291994); var lonepine = new google.maps.LatLng(36.606111, -118.062778); var owenslake = new google.maps.LatLng(36.433269, -117.950916);

code.google.com/intl//services.html

18/27

15/04/2011

Google Maps Javascript API V3 Services -

var beattyjunction = new google.maps.LatLng(36.588056, -116.943056); var panamintsprings = new google.maps.LatLng(36.339722, -117.467778); var badwater = new google.maps.LatLng(36.23998, -116.83171); // Load the Visualization API and the columnchart package. google.load("visualization", "1", {packages: ["columnchart"]}); function initialize() { var myOptions = { zoom: 8, center: lonepine, mapTypeId: 'terrain' } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); // Create an ElevationService. elevator = new google.maps.ElevationService(); // Draw the path, using the Visualization API and the Elevation service. drawPath(); } function drawPath() { // Create a new chart in the elevation_chart DIV. chart = new google.visualization.ColumnChart(document.getElementById('elevation_chart')); var path = [ whitney, lonepine, owenslake, panamintsprings, beattyjunction, badwater]; // Create a PathElevationRequest object using this array. // Ask for 256 samples along that path. var pathRequest = { 'path': path, 'samples': 256 } // Initiate the path request. if (elevator) { elevator.getElevationAlongPath(pathRequest, plotElevation); } } // Takes an array of ElevationResult objects, draws the path on the map // and plots the elevation profile on a Visualization API ColumnChart. function plotElevation(results, status) { if (status == google.maps.ElevationStatus.OK) { elevations = results; // Extract the elevation samples from the returned results // and store them in an array of LatLngs. var elevationPath = []; for (var i = 0; i < results.length; i++) { elevationPath.push(elevations[i].location); } // Display a polyline of the elevation path. var pathOptions = { path: elevationPath, strokeColor: '#0000CC', opacity: 0.4, map: map } polyline = new google.maps.Polyline(pathOptions); // Extract the data from which to populate the chart. // Because the samples are equidistant, the 'Sample' // column here does double duty as distance along the // X axis. var data = new google.visualization.DataTable(); data.addColumn('string', 'Sample'); data.addColumn('number', 'Elevation'); for (var i = 0; i < results.length; i++) { data.addRow(['', elevations[i].elevation]); }

code.google.com/intl//services.html

19/27

15/04/2011

Google Maps Javascript API V3 Services -

// Draw the chart using the data within its DIV. document.getElementById('elevation_chart').style.display = 'block'; chart.draw(data, { width: 640, height: 200, legend: 'none', titleY: 'Elevation (m)' }); } } Ver exemplo (elevation-paths.html)

Street View
O Street View do Google proporciona visualizaes panormicas de 360 graus de ruas designadas em toda sua rea de cobertura. A cobertura da Street View API a mesma do aplicativo Google Maps (http://maps.google.com/ ). A lista de cidades atualmente suportadas para o Street View est disponvel na Central de Ajuda do Google Maps . Veja abaixo um exemplo de imagem do Street View.

2699 Bancroft Way, Berkeley, California


O endereo aproximado

2011 Google - Termos de Uso

A Google Maps JavaScript API agora fornece o servio Street View para obteno e manipulao de imagens usadas no recurso Street View do Google Maps. Diferentemente da API V2, o servio Street View na Google Maps JavaScript API V3 suportado de modo nativo dentro do navegador.

Como adicionar o Street View ao mapa


Use o Street View para indicar um local em um mapa. Para adicionar o Street View a um mapa, basta adicionar o controle do Street View. Para adicionar esse controle, defina streetViewControl como true no MapOptions do mapa. O mapa aparecer com um controle Pegman do Street View. O controle Pegman do Street View permite visualizar panoramas do Street View diretamente dentro do m apa. Quando voc clica no Pegman e mantm o mouse pressionado, o mapa atualizado para mostrar ruas ativadas no Street View usando contornos azuis no mapa:

code.google.com/intl//services.html

20/27

15/04/2011

Google Maps Javascript API V3 Services -

Arraste o marcador do Pegman para uma rua e o mapa ser atualizado para exibir um panorama do Street View do local indicado. O exemplo a seguir adiciona um streetViewControl a um mapa de Boston, na regio prxima ao Fenway Park: var fenway = new google.maps.LatLng(42.345573,-71.098326); var mapOptions = { center: fenway, zoom: 14, mapTypeId: google.maps.MapTypeId.ROADMAP, streetViewControl: true }; var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); Ver exemplo (streetview-map.html)

Panoramas do Street View


As imagens do Street View so suportadas pelo objeto StreetViewPanorama, que fornece uma interface da API para um "visualizador" do Street View. Cada mapa contm um panorama padro do Street View, que voc pode recuperar chamando o mtodo getStreetView() do mapa. Ao adicionar um controle do Street View ao mapa definindo a opo streetViewControl como true, voc conecta automaticamente o controle do Pegman a esse panorama padro do Street View. Voc tambm pode criar seu prprio objeto StreetViewPanorama e configurar o mapa para us-lo em vez de usar o padro, definindo a propriedade streetView do mapa explicitamente para esse objeto construdo. Talvez voc queira substituir o panorama padro se quiser modificar um comportamento padro, como o compartilhamento automtico de superposies entre o mapa e o panorama. Consulte Superposies no Street View, abaixo.

Recipientes do Street View


Voc tambm pode querer exibir um StreetViewPanorama dentro de um elemento DOM diferente, que geralmente ser um elemento <div>. Para isso, basta passar o elemento DOM dentro do construtor StreetViewPanorama . Para exibio otimizada de imagens, recomendamos o tamanho mnimo de 20 x 200 pixels. Observao: Embora a funcionalidade da Vista da rua seja desenvolvida para ser usada junto com um mapa, esse uso no obrigatrio. Voc pode usar um objeto da Vista da rua autnomo sem um mapa.

Locais e Pontos de vista (POV) do Street View


O construtor StreetViewPanorama tambm permite definir locais e pontos de vista do Street View usando o parmetro StreetViewOptions. Voc pode chamar setPosition() e setPov() no objeto aps a construo para alterar o local e o POV.

code.google.com/intl//services.html

21/27

15/04/2011

Google Maps Javascript API V3 Services -

O local do Street View define o local de posicionamento da cmera para uma imagem, mas no define a orientao da cmera em relao a essa imagem. Para definir a orientao da cmera, o objeto StreetViewPov define trs propriedades:

heading (padro 0) define o ngulo de rotao (em graus) em torno do local da cmera em relao ao norte
absoluto. A direo medida no sentido horrio (90 graus indica o leste absoluto). pitch (padro 0) define a variao "para cima" ou "para baixo" do ngulo em relao inclinao inicial padro da cmera. Frequentemente, mas no sempre, a inclinao plana e horizontal. Por exemplo, um a imagem feita em uma colina provavelmente exibir uma inclinao padro que no horizontal. Os ngulos de inclinao so medidos com valores negativos apontando para cima (at chegar em -90 graus e ortogonalmente em relao inclinao padro) e valores positivos apontando para baixo (at chegar em +90 graus e ortogonalmente em relao inclinao padro). zoom (padro 1) define o nvel de zoom da visualizao (indicando efetivamente o "campo de viso"), com o valor 0 indicando a total diminuio do zoom. A maioria dos locais do Street View suportam nveis de 0 a 3 (valores inclusivos). O cdigo a seguir mostra um mapa de Boston com uma visualizao inicial do Fenway Park. Se voc selecionar e arrastar o Pegman para um local suportado no mapa, alterar o panorama do Street View: var fenway = new google.maps.LatLng(42.345573,-71.098326); var mapOptions = { center: fenway, zoom: 14, mapTypeId: google.maps.MapTypeId.ROADMAP, streetViewControl: true }; var map = new google.maps.Map( document.getElementById("map_canvas"), mapOptions); var panoramaOptions = { position: fenway, pov: { heading: 34, pitch: 10, zoom: 1 } }; var panorama = new google.maps.StreetViewPanorama(document.getElementById("pano"), panoramaOptions); map.setStreetView(panorama); Ver exemplo (streetview-simple.html)

Superposies no Street View


O objeto StreetViewPanorama padro suporta a exibio nativa de superposies de mapa. Geralmente, as superposies aparecem no "nvel da rua", ancoradas em posies de LatLng. Os marcadores, por exemplo, aparecero com suas caudas ancoradas ao plano horizontal do local no panorama do Street View. Atualmente, os tipos de superposies suportados em panoramas do Street View se limitam a Markers, InfoWindow s e OverlayView s personalizados. As superposies que voc exibe em um mapa tambm podem ser exibidas em um panorama do Street View. Para isso, trate o panorama como um substituto para o objeto Map , chamando setMap() e passando o StreetViewPanorama como um argumento, em vez de um mapa. De modo parecido, as janelas de informaes podem ser abertas em um panorama do Street View. Para isso, cham e open(), passando o StreetViewPanorama() em vez de um mapa. Alm disso, na criao de um mapa com um StreetViewPanorama padro, todos os marcadores criados em um mapa so compartilhados automaticamente com o panorama do Street View associado ao mapa, contanto que o panorama seja visvel. Para recuperar o panorama padro do Street View, chame getStreetView() no objeto Map . Se voc definir explicitamente a propriedade streetView do mapa como um StreetViewPanorama de sua prpria criao, o panorama padro ser substitudo e o compartilhamento automtico de superposio ser desativado. O exemplo a seguir mostra marcadores que representam vrios locais ao redor de Astor Place, Nova York. Alterne a exibio para Street View para mostrar os marcadores compartilhados exibidos no StreetViewPanorama . var var var var var var map; panorama; astorPlace = new google.maps.LatLng(40.729884, -73.990988); busStop = new google.maps.LatLng(40.729559678851025, -73.99074196815491); cafe = new google.maps.LatLng(40.730031233910694, -73.99142861366272); bank = new google.maps.LatLng(40.72968163306612, -73.9911389350891);

function initialize() {

code.google.com/intl//services.html

22/27

15/04/2011

Google Maps Javascript API V3 Services -

// Set up the map var mapOptions = { center: astorPlace, zoom: 18, mapTypeId: google.maps.MapTypeId.ROADMAP, streetViewControl: true }; map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); // Setup the markers on the map var cafeMarkerImage = new google.maps.MarkerImage('http://chart.apis.google.com/chart? chst=d_map_pin_icon&chld=cafe|FFFF00'); var cafeMarker = new google.maps.Marker({ position: cafe, map: map, icon: cafeMarkerImage, title: 'Cafe' }); var bankMarkerImage = new google.maps.MarkerImage('http://chart.apis.google.com/chart? chst=d_map_pin_icon&chld=dollar|FFFF00'); var bankMarker = new google.maps.Marker({ position: bank, map: map, icon: bankMarkerImage, title: 'Bank' }); var busMarkerImage = new google.maps.MarkerImage('http://chart.apis.google.com/chart? chst=d_map_pin_icon&chld=bus|FFFF00'); var busMarker = new google.maps.Marker({ position: busStop, map: map, icon: busMarkerImage, title: 'Bus Stop' }); // We get the map's default panorama and set up some defaults. // Note that we don't yet set it visible. panorama = map.getStreetView(); panorama.setPosition(astorPlace); panorama.setPov({ heading: 265, zoom:1, pitch:0} ); } function toggleStreetView() { var toggle = panorama.getVisible(); if (toggle == false) { panorama.setVisible(true); } else { panorama.setVisible(false); } } Ver exemplo (streetview-overlays.html)

Eventos do Street View


Ao navegar entre os panoramas do Street View ou manipular sua orientao, voc pode querer monitorar vrios eventos que indicam alteraes no estado do StreetViewPanorama :

pano_changed disparado sempre que o ID de um panorama individual alterado. Este evento no garante
que algum dado dentro do panorama (como os links) tambm tenha sido alterado no momento em que o evento foi disparado. Este evento indica apenas que o ID de um panorama foi alterado. O ID do panorama (que voc pode usar para referenciar esse panorama) estvel apenas dentro da sesso atual do navegador. position_changed disparado sempre que a posio subjacente ( LatLng) do panorama alterada. A rotao de um panorama no disparar este evento. Voc pode alterar uma posio subjacente do panorama sem alterar o ID do panorama, pois a API associar automaticamente o ID do panorama mais prximo

code.google.com/intl//services.html

23/27

15/04/2011

Google Maps Javascript API V3 Services -

posio do panorama. pov_changed disparado sempre que o StreetViewPov do Street View alterado. Este evento pode ser disparado enquanto a posio e o ID do panorama permanecem estveis. links_changed disparado sempre que os links do Street View so alterados. Este evento pode ser disparado de modo assncrono aps uma alterao no ID do panorama indicada pelo pano_changed .

visible_changed disparado sempre que a visibilidade do Street View alterada. Este evento pode ser disparado de modo assncrono aps uma alterao no ID do panorama indicada pelo pano_changed .
O cdigo a seguir ilustra como esses eventos podem ser manipulados para coletar dados sobre o StreetViewPanorama subjacente: var caffe = new google.maps.LatLng(37.869085,-122.254775); function initialize() { var panoramaOptions = { position:caffe, pov: { heading: 270, pitch:0, zoom:1 }, visible:true }; var panorama = new google.maps.StreetViewPanorama(document.getElementById("pano"), panoramaOptions); google.maps.event.addListener(panorama, 'pano_changed', function() { var panoCell = document.getElementById('pano_cell'); panoCell.firstChild.nodeValue = panorama.getPano(); }); google.maps.event.addListener(panorama, 'links_changed', function() { var linksTable = document.getElementById('links_table'); while(linksTable.hasChildNodes()) { linksTable.removeChild(linksTable.lastChild); }; var links = panorama.getLinks(); for (var i in links) { var row = document.createElement("tr"); linksTable.appendChild(row); var hCell = document.createElement("td"); var hText = "Link: " + i + ""; hCell.innerHTML = hText; var vCell = document.createElement("td"); var vText = links[i].description; vCell.innerHTML = vText; linksTable.appendChild(hCell); linksTable.appendChild(vCell); } }); google.maps.event.addListener(panorama, 'position_changed', function() { var positionCell = document.getElementById('position_cell'); positionCell.firstChild.nodeValue = panorama.getPosition(); }); google.maps.event.addListener(panorama, 'pov_changed', function() { var headingCell = document.getElementById('heading_cell'); var pitchCell = document.getElementById('pitch_cell'); headingCell.firstChild.nodeValue = panorama.getPov().heading; pitchCell.firstChild.nodeValue = panorama.getPov().pitch; }); } Ver exemplo (streetview-events.html)

Controles do Street View


Quando um StreetViewPanorama exibido, vrios controles aparecem no panorama por padro. possvel ativar ou desativar esses controles definindo seus campos apropriados no StreetViewPanoramaOptions do Street View como true ou false:

code.google.com/intl//services.html

24/27

15/04/2011

Google Maps Javascript API V3 Services -

Um navigationControl fornece um modo de girar o panorama e aplicar zoom na imagem. Por padro, este controle aparece como um controle padro integrado de bssola, deslocamento e zoom. possvel alterar a aparncia do controle fornecendo NavigationControlOptions dentro do campo navigationControlOptions. Um addressControl fornece uma superposio textual que indica o endereo do local associado. possvel alterar a aparncia do controle fornecendo StreetViewAddressControlOptions dentro do campo addressControlOptions. Um linksControl fornece setas de orientao na imagem que permitem acessar imagens do panorama adjacente. O exemplo a seguir altera os controles exibidos no Street View associado e remove os links da visualizao: var fenway = new google.maps.LatLng(42.345573,-71.098326); // Note: constructed panorama objects have visible: true // set by default. var panoOptions = { position: fenway, addressControlOptions: { position: google.maps.ControlPosition.BOTTOM, style: { "fontWeight" : "bold", "backgroundColor" : "#191970", "color" :"#A9203E" } }, linksControl: false, navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL }, enableCloseButton: false, visible:true }; var panorama = new google.maps.StreetViewPanorama( document.getElementById("pano"), panoOptions); Ver exemplo (streetview-controls.html)

Como acessar diretamente dados do Street View


Talvez voc queira determinar de modo programado a disponibilidade de dados do Street View ou retornar informaes sobre panoramas especficos, sem precisar manipular diretamente um mapa/panorama. poss vel fazer isso usando o objeto StreetViewService, que fornece uma interface para os dados armazenados no servio Street View do Google.

Solicitaes para o servio Street View


O acesso ao servio Street View assncrono, pois a Google Maps API precisa fazer uma chamada para um servidor externo. Por essa razo, voc precisa passar um mtodo de retorno de chamada a ser executado aps a concluso da solicitao. Esse mtodo de retorno de chamada processa o resultado. possvel iniciar dois tipos de solicitaes para o StreetViewService :

getPanoramaById() retorna dados do panorama por meio de um ID de referncia fornecido que identifica
exclusivamente o panorama. Esses IDs de referncia so estveis apenas dentro da sesso atual do navegador. getPanoramaByLocation() pesquisa dados do panorama em uma rea especificada, com base em um LatLng passado e no raio (em metros) no qual a pesquisa deve ser feita. Se o raio for de 50 metros ou menos, o panorama retornado ser o mais prximo do local especificado.

Respostas do servio Street View


getPanoramaByLocation() e getPanoramaById() especificam uma funo de retorno de chamada a ser
executada quando um resultado for recuperado do servio Street View. Essa funo de retorno de chamada retorna um conjunto de dados do panorama dentro de um objeto StreetViewPanoramaData e um cdigo StreetViewStatus que indica o status da solicitao, nessa ordem. Uma especificao do objeto StreetViewPanoramaData contm metadados sobre um panorama do Street View da seguinte forma: {

code.google.com/intl//services.html

25/27

15/04/2011
"location": { "latLng": LatLng, "description": string, "pano": string }, "copyright": string, "links": [{ "heading": number, "description": string, "pano": string, "roadColor": string, "roadOpacity": number }], "tiles": { "worldSize": Size, "tileSize": Size, "originHeading": number } }

Google Maps Javascript API V3 Services -

Este objeto de dados no propriamente um objeto StreetViewPanorama . Para criar um objeto Street View usando esses dados, voc ter que criar um StreetViewPanorama e chamar setPano() , passando o ID fornecido no campo location.pano retornado. O cdigo status pode retornar um dos seguintes valores:

OK indica que o servio encontrou um panorama correspondente. ZERO_RESULTS indica que o servio no conseguiu encontrar um panorama que corresponde aos critrios
passados.

UNKNOWN_ERROR indica que uma solicitao do Street View no pde ser processada, embora o motivo exato
seja desconhecido. O cdigo a seguir cria um StreetViewService que responde aos cliques dos usurios em um mapa criando marcadores que, ao serem clicados, exibem um StreetViewPanorama desse local. O cdigo usa o contedo de StreetViewPanoramaData retornado pelo servio. var map; var berkeley = new google.maps.LatLng(37.869085,-122.254775); var sv = new google.maps.StreetViewService(); var panorama; function initialize() { panorama = new google.maps.StreetViewPanorama(document.getElementById("pano")); // Set up the map var mapOptions = { center: berkeley, zoom: 16, mapTypeId: google.maps.MapTypeId.ROADMAP, streetViewControl: false }; map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); // getPanoramaByLocation will return the nearest pano when the // given radius is 50 meters or less. google.maps.event.addListener(map, 'click', function(event) { sv.getNearestPanorama(event.latLng, 50, processSVData); }); } function processSVData(data, status) { if (status == google.maps.StreetViewStatus.OK) { var marker = new google.maps.Marker({ position: data.location.latLng, map: map, title: data.location.description }); google.maps.event.addListener(marker, 'click', function() { var markerPanoID = data.location.pano; // Set the Pano to use the passed panoID

code.google.com/intl//services.html

26/27

15/04/2011

Google Maps Javascript API V3 Services -

panorama.setPano(markerPanoID); panorama.setPov({ heading: 270, pitch: 0, zoom: 1 }); panorama.setVisible(true); }); } } Ver exemplo (streetview-service.html)

2010 Google - Pgina inicial do Google Code - Termos de servio do site - Poltica de Privacidade - Diretrio do site O Google Code oferecido em: English - Espaol - - - Portugus - P - () - ()

code.google.com/intl//services.html

27/27

You might also like