web-dev-qa-db-fra.com

L'objet PlaceResult renvoie la latitude / longitude comme objet, je ne sais pas comment les obtenir individuellement

Je teste la fonctionnalité de saisie semi-automatique de Google Adresses ici:

https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete

Je veux obtenir la latitude et la longitude de l'endroit, mais j'ai des problèmes. Lorsque j'utilise le code suivant:

var place = autocomplete.getPlace();
console.log(place.geometry.location);

Je reçois ceci retourné:

enter image description here

Quand je l'utilise dans une infoWindow comme celle-ci:

infowindow.setContent('
<div><strong>' + place.name + '</strong><br>' + place.geometry.location);

place.geometry.location s'affiche alors comme ceci:

(53.539834, -113.49402099999998)

Tout ce que je veux faire, c'est obtenir le lat et le lng séparément. place.geometry.location.lat ne fonctionne pas. Je ne sais pas quoi faire d'autre.

33
dallen

Vous pouvez utiliser comme ça.

var latitude = place.geometry.location.lat();
var longitude = place.geometry.location.lng();  
89
JDev

Vous pouvez utiliser:

var LatLng = place.geometry.location.toJSON();
2
Sabbir

Ça marche bien pour moi.

marker.setIcon(image);

marker.setPosition(place.geometry.location);

var address = '';
if (place.address_components) {
    address = [
        (place.address_components[0] && place.address_components[0].short_name || ''),
        (place.address_components[1] && place.address_components[1].short_name || ''),
        (place.address_components[2] && place.address_components[2].short_name || '')
    ].join(' ');
}
alert(place.geometry.location.lat());
alert(place.geometry.location.lng());
infowindow.setContent('<div><strong>' + place.name + '</strong><br>' + address);
infowindow.open(map, marker);
1
Muthu