2016-07-06 6 views
0

Ich habe ein Projekt auf Google API Console erstellt und einen Browser Key erhalten, um eine Textbox mit Google Map Autocomplete anzuzeigen. Obwohl in der Browserkonsole kein Fehler auftritt, funktioniert die automatische Vervollständigung nicht. Hier ist mein htmlGoogle Maps Autocomplete-Feld Adressen nicht aufgeführt

<html> 
<head> 
    <meta charset = "utf-8"/> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> 
</head> 

<body onload = "initialize();"> 
<form method = "post"> 
    <input type = "text" id = "autocomplete" placeholder = "Η Διευθυνσή σας"/> 
</form> 
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBmm_XsU6QttZNhw1RfxRHTpavpbN33jX0&libraries=places,geometry" async defer></script> 
<script type = "text/javascript"> 
     var autocomplete; 
     function initialize() { 
      autocomplete = new google.maps.places.Autocomplete(
       /** @type {HTMLInputElement} */(document.getElementById('autocomplete')), 
       { types: ['geocode'] }); 

     } 
    </script> 
</body> 

und hier ist meine Testseite: http://www.lefko-cafe.gr/content/addrress_finder.php

Das Seltsame ist, dass das genau die gleiche html in einer anderen Domäne arbeitet (mit Ausnahme der Taste): http://www.laoskaikalamaki.gr/content/addrress_finder.php

Antwort

1

Keines Ihrer Beispiele funktioniert für mich. Das Onload-Ereignis und der Abschluss des Ladens des Skripts sind zwei unterschiedliche asynchrone Ereignisse. Sie können in unterschiedlichen Aufträgen auf unterschiedlichen Server-/Browserpositionen ausgelöst werden. Ich erhalte einen Javascript Fehler Uncaught TypeError: Cannot read property 'innerHTML' of null Sie haben async defer in Ihrem Include der API, aber keine &callback=initialize Parameter.

Code-Schnipsel:

<body> <!-- remove onload = "initialize();" --> 
<form method = "post"> 
    <input type = "text" id = "autocomplete" placeholder = "Η Διευθυνσή σας"/> 
</form> 
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBmm_XsU6QttZNhw1RfxRHTpavpbN33jX0&libraries=places,geometry&callback=initialize" async defer></script> 

<form method="post"> 
 
    <input type="text" id="autocomplete" placeholder="Η Διευθυνσή σας" /> 
 
</form> 
 
<script src="https://maps.googleapis.com/maps/api/js?libraries=places,geometry&callback=initialize" async defer></script> 
 
<script type="text/javascript"> 
 
    var autocomplete; 
 

 
    function initialize() { 
 
    autocomplete = new google.maps.places.Autocomplete(
 
     /** @type {HTMLInputElement} */ 
 
     (document.getElementById('autocomplete')), { 
 
     types: ['geocode'] 
 
     }); 
 
    } 
 
</script>

+0

Dank nur Google die automatische Vervollständigung verwenden, aber es hat nicht funktioniert. ... – meidanisalekos

+0

funktioniert das Code-Snippet für Sie? – geocodezip

+0

ja das Code-Snippet funktioniert – meidanisalekos

3

Mit den Änderungen an Maps API Standard Plan, wenn Sie die Places Service Sie Google Places API Web Servicein the developer console

Das aktivieren müssen verwenden möchten Gleiches gilt für jeden anderen Service, wenn Sie uns Directions möchten, müssen Sie Google Maps Directions API aktivieren, wenn Sie Geocoding verwenden möchten, müssen Sie Google Maps Geocoding API aktivieren.

Dies hat sich vor kurzem geändert, also müssen Sie sich nicht entschuldigen.

0

api-key wird benötigt, wenn Ihre Domain nach dem Juni 22,2016 ist. Sie müssen folgende api aktivieren, wenn Sie möchten mit Javascript

für Ihre Antwort
  • Google Maps JavaScript API
  • Google Places API Web Service