Google Maps API v3-obter o mapa por endereço?

Sou novo no google maps., e eu gostaria de integrá-lo em meu site ( Páginas Amarelas tipo de site ).

Tenho actualmente o seguinte código:

<!DOCTYPE html>

<html>
<head>
    <title></title>
    <script type="text/javascript" src="jquery-1.6.2.min.js"></script>
    <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var latlng = new google.maps.LatLng(-34.397, 150.644);
            var myOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
            var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
        }); 
    </script>
</head>
<body>
    <div id="map_canvas" style="width: 500px; height: 300px; position: relative; background-color: rgb(229, 227, 223);"></div>
</body>
</html>

este código funciona e mostra - me o mapa para o Lat/Long específico

Mas, quero ser capaz de especificar um endereço e não de lat / long params., uma vez que tenho os endereços das empresas na lista telefónica, mas não tenho os valores lat/long.

Tentei procurar isto, mas ... só encontrei algo semelhante na versão V2, que foi depreciada.

Author: Rafael Herscovici, 2011-07-30

5 answers

Pode utilizar o google geocoder: http://code.google.com/apis/maps/documentation/geocoding / Tenha cuidado-você pode estar fora da quota e assim o pedido para o geocoder vai falhar

A utilização da API do Google Geocoding está sujeita a um limite de consulta de 2.500 pedidos de geolocalização por dia.

 12
Author: JohnJohnGa, 2011-07-30 12:04:38

O que está à procura é uma funcionalidade Geocode no serviço google; primeiro dê um endereço para obter um LatLng, depois ligue ao setCenter para deslocar o mapa para o local específico. A API do Google embrulhou-o muito bem e você pode ver como ele funciona através Este exemplo:

var geocoder;
var map;
function initialize() {
  geocoder = new google.maps.Geocoder();
  var latlng = new google.maps.LatLng(-34.397, 150.644);
  var mapOptions = {
    zoom: 8,
    center: latlng
  }
  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
}

function codeAddress() {
  var address = document.getElementById('address').value;
  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);
    }
  });
}

google.maps.event.addDomListener(window, 'load', initialize);
 13
Author: Howard, 2015-05-22 12:42:20

Se estiver de acordo com uma iframe, pode ignorar o problema do geocoding e usar a API embutida do Google Maps :

A API Embed do Google Maps é livre de usar (sem quotas ou pedido) Limites), no entanto você deve se registrar para uma chave de API livre para incorporar um mapa no seu site.

Por exemplo, você introduziria isto na sua página (substituindo as elipses pela sua própria chave pessoal da API do Google):

<iframe width="600" height="450" frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/place?
q=301+Park+Avenue,+NY,+United+States&key=..."></iframe> 

Obviamente a utilidade disto dependerá da sua caso de uso, mas eu gosto disto como uma solução rápida e suja.

 8
Author: User, 2014-08-16 02:54:39

Existe um plugin para o jQuery que o torna, o seu nome é gMap3, e você pode vê-lo em ação aqui:

Http://gmap3.net/examples/address-lookup.html

E aqui

Http://jsfiddle.net/gzF6w/1/

 1
Author: jlledom, 2011-07-30 12:28:01

O Gmap3 não o faz por si, como sugere outra resposta: apenas lhe dá uma API para abstrair a parte geocodificadora do processo.

A resposta é: o Google não permite mais fazer isso. Pelo menos não na V3, e já que isso existe há mais de um ano...

Você realmente poderia enviar endereços para direções de condução, mas a sua API tornou ilegal enviar um endereço para um mapa normal (embutido, baseado em API) de qualquer tipo. A cota diária sobre geocoding é a sua peça em" ainda permitindo " endereços, enquanto na realidade completamente desautorizando-os para qualquer site real.

Você pode ligar-se a um mapa com um endereço, embora eu não consiga encontrar isto nos documentos do Google:

Http://maps.google.com/maps?f=d&saddr=&daddr=this é o meu endereço, city state

Talvez eu só tenha um problema com isso porque eles não fornecem nenhuma documentação clara e fácil-eu tenho que vir para StackOverflow para obter as respostas Estou à procura. Ie. eles vagamente mencionam que você precisa de uma chave API para contornar os limites anônimos, mas não se vinculam ao que esses limites são ou como usar sua API sem uma chave. Que é o que quero fazer pela skunkworks ou pelo desenvolvimento de provas de conceito. Em vez disso, o Google quer empurrar seus mapas para as empresas, etc., em vez de fornecer informações reais.
 1
Author: Liam, 2012-07-13 16:30:46