2016-10-07 12 views
-1

Ich versuche einfach, Abstände zwischen zwei Punkten zu berechnen, aber es gibt mir Uncaught TypeError: a.lat ist keine Funktion.JavaScript Uncaught Type Fehler beim Berechnen der Entfernung

function MapLocations() { 
 
     
 
      var i = 0; 
 
      var infoWindow = new google.maps.InfoWindow(); 
 
      \t var myLatLng = {lat: 31.553761202565646, lng: 74.26506623625755} 
 
       var m = new google.maps.Marker({ 
 
        map: map, 
 
        clickable: true, 
 
        animation: google.maps.Animation.DROP, 
 
        title: 'My Home', 
 
        position: myLatLng, 
 
        // html: h[i], 
 
        
 
       }); 
 

 
       var circle = new google.maps.Circle({ 
 
        map: map, 
 
        radius: 18.288, // 10 miles in metres 
 
        fillColor: '#50D050' 
 
       }); 
 

 
       circle.bindTo('center', m, 'position'); 
 
       
 
      \t \t var distanceInMetres = google.maps.geometry.spherical.computeDistanceBetween(myLatLng, pos).toFixed(2); 
 
      \t \t //console.log(distanceInMetres); 
 
       //google.maps.event.addListener(m, 'click', function() { 
 
       // infoWindow.setContent('Hello'); 
 
       // infoWindow.open(map, this); 
 
       //}); 
 
       //google.maps.event.addListener(dragable_marker, 'dragend', function (e) { 
 
       // alert(circle.getBounds().contains(dragable_marker.getPosition())); 
 
       //}); 
 

 
       //alert(distanceInMetres); 
 
       i++; 
 

 
      
 
     }

PO ist die Navigator von Objekt getroffen Benutzerposition. Die Sache ist, es funktioniert alles gut, während ich die Berechnung entferne.

+1

Sind Sie sicher, dass 'myLatLng' ein einfaches Objekt sein sollte? Es scheint, als ob die Bibliothek erwartet, dass Ihre 'lat'-Eigenschaft eine Funktion ist, kein Wert – slezica

+0

Verwandte Frage: [Google Maps a.lat ist keine Funktion.] (Http://stackoverflow.com/questions/37600543/ google-maps-a-lat-ist-nicht-eine-funktion) – geocodezip

+0

verwandte frage: [Google Maps API a.lat ist kein funktion fehler] (http://stackoverflow.com/questions/36640449/google-maps- api-a-lat-ist-nicht-eine-funktion fehler) – geocodezip

Antwort

0

Sie haben einen Sintax-Fehler. Haben Sie ein letztes Javascript-Objekt-Attribut mit Komma

  var m = new google.maps.Marker({ 
       map: map, 
       clickable: true, 
       animation: google.maps.Animation.DROP, 
       title: 'My Home', 
       position: myLatLng, 
           ??? this is wrong 
       // html: h[i], 

      }); 

sollten Sie es verwenden, ohne ,

  var m = new google.maps.Marker({ 
       map: map, 
       clickable: true, 
       animation: google.maps.Animation.DROP, 
       title: 'My Home', 
       position: myLatLng 

       // html: h[i], 

      }); 
+0

Wie ich sagte, das Problem ist nur mit computeDistanceBetween Funktion –

1

Die google.maps.geometry.spherical.computeDistancBetween Methode funktioniert nicht mit LatLngLiteral Objekte (zumindest derzeit), können Sie in google.maps.LatLng passieren müssen Objekte.

von the (latest) documentation:

computeDistanceBetween(from:LatLng, to:LatLng, radius?:number)

Return Value: number

Returns the distance, in meters, between two LatLngs. You can optionally specify a custom radius. The radius defaults to the radius of the Earth.

+0

vielen Dank. Das hat wie ein Zauber funktioniert –

Verwandte Themen