2016-03-22 4 views
2

Ich folge this Google Beispiel von Orten Autovervollständigung Adresseform.Wie stelle ich die Sprache von Google Autocomplete Form auf Englisch ein?

Das Problem ist, dass wenn ich "Rom, Italien" einfügen das Formular in der Stadt "Roma" und im Land "Italia" (die Sprache ist Italienisch) zurückgibt. Ich will den italienischen Namen nicht, ich will den englischen Namen. Im gleichen Beispiel, wenn ich "Roma, Italia" oder "Rom, Italien" einfüge, möchte ich, dass das Formular in der Stadt "Rom" und im Land "Italien" zurückgegeben wird.

Was muss ich tun, um die Sprache des Formulars nur auf Englisch einzustellen?

Hier ist der Javascript-Teil:

var placeSearch, autocomplete; 
var componentForm = { 
    street_number: 'short_name', 
    route: 'long_name', 
    locality: 'long_name', 
    administrative_area_level_1: 'short_name', 
    country: 'long_name', 
    postal_code: 'short_name' 
}; 

function initAutocomplete() { 
    // Create the autocomplete object, restricting the search to geographical 
    // location types. 
    autocomplete = new google.maps.places.Autocomplete(
     /** @type {!HTMLInputElement} */(document.getElementById('autocomplete')), 
     {types: ['geocode']}); 

    // When the user selects an address from the dropdown, populate the address 
    // fields in the form. 
    autocomplete.addListener('place_changed', fillInAddress); 
} 

function fillInAddress() { 
    // Get the place details from the autocomplete object. 
    var place = autocomplete.getPlace(); 

    for (var component in componentForm) { 
    document.getElementById(component).value = ''; 
    document.getElementById(component).disabled = false; 
    } 

    // Get each component of the address from the place details 
    // and fill the corresponding field on the form. 
    for (var i = 0; i < place.address_components.length; i++) { 
    var addressType = place.address_components[i].types[0]; 
    if (componentForm[addressType]) { 
     var val = place.address_components[i][componentForm[addressType]]; 
     document.getElementById(addressType).value = val; 
    } 
    } 
} 

// Bias the autocomplete object to the user's geographical location, 
// as supplied by the browser's 'navigator.geolocation' object. 
function geolocate() { 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     var geolocation = { 
     lat: position.coords.latitude, 
     lng: position.coords.longitude 
     }; 
     var circle = new google.maps.Circle({ 
     center: geolocation, 
     radius: position.coords.accuracy 
     }); 
     autocomplete.setBounds(circle.getBounds()); 
    }); 
    } 
} 

Und hier die api mit dem Schlüssel:

<script src="https://maps.googleapis.com/maps/api/js?key=[API key]&libraries=places&callback=initAutocomplete" async defer></script> 

Vielen Dank im Voraus

+1

Es ist keine gute Idee, Ihren API-Schlüssel zu veröffentlichen. Ich würde es entfernen. –

+0

@JoachimRohde Aber wenn ich die Website hochladen werde der Schlüssel öffentlich sein, oder nicht? – Radames

Antwort

4

Sie die Sprache von &language=[language here], um den Skript-Tag ändern können das Hinzufügen . Für Englisch, das wäre: &language=en

Ein Beispiel:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&language=en" 
type="text/javascript"> 
</script> 

Diese here beschrieben wird, und es ist ein funktionierendes Beispiel here.

+0

Danke @Dexter !!! – Radames

Verwandte Themen