2017-01-06 4 views
-1

Wir verwenden das Google Maps-API, um eine Liste aller unserer Kliniken auf unserer Website anzuzeigen, und ich schreibe gerade eine Funktion "Zeige alle Kliniken in meiner Nähe". Alles funktioniert einwandfrei und auf der Karte wird ein Kreis mit dem Google Maps Circle-Aufruf aus der Geometriebibliothek gezeichnet.Google Maps API (3) computeDistanceBetween gibt NaN zurück

Wir möchten eine Liste aller Kliniken, die in diesen Kreis fallen, zurückgeben. Unsere Kliniken werden über einen $.get(); Aufruf aus einer separaten .js-Datei geladen. Ich habe mit der google.maps.geometry.spherical.computeDistanceBetween(pointA, pointB); Funktion zu testen, ob jede Klinik in den Kreis fällt, wobei pointB ist die Mitte des Kreises und pointA ist die Position der Klinik - die beide über new google.maps.LatLng(clinic.lat, clinic.long)); definiert werden.

ComputeDistanceBetween immer wieder NaN für jede Klinik. Aufgrund einiger Empfindlichkeitsprobleme kann ich den genauen Code nicht teilen, mit dem ich arbeite, aber ich verwende modified a Google Maps API fiddle for marker clustering HERE, weil wir auch Marker Clustering verwenden und die Lat/Longs ähnlich wie unsere laden.

Ich habe bereits this post überprüft und es hat nicht funktioniert für mich.

Antwort

2

Sie haben einen Tippfehler in Ihrem Code. locations[x].long existiert nicht, dass locations[x].lng

sein sollte, so sollte Ihre Funktion sein:

var mylocation = new google.maps.LatLng(locations[0].lat, locations[0].lng); 
    console.log(mylocation); 
    var marker_lat_lng = new google.maps.LatLng(locations[2].lat, locations[2].lng); 
    console.log(marker_lat_lng); 
    var distance_from_location = google.maps.geometry.spherical.computeDistanceBetween(mylocation, marker_lat_lng); 
    document.getElementById('feedback').innerHTML = distance_from_location; 

proof of concept fiddle

+0

Oh G-d D --- it! Immer etwas Einfaches. Ich bin jetzt 100 Mal darüber gegangen und das habe ich anscheinend jedes Mal vermisst. Lassen Sie es mich in meinem Entwicklercode ausprobieren und sehen Sie, wie es ausbricht. –

+0

Das war es, aber im Falle des DevCodes hatte ich 'long' anstelle von' lng'. Oy. Vielen Dank! –

Verwandte Themen