2010-08-28 6 views
1

J'ai une fonction searchlocationNear pour laquelle je passe des données géocodées j'ai besoin de calculer la distance basée sur les valeurs de lattitude et de longitude, mais pendant les fonctions d'alerte de distance, elle affiche un problème avec mon code.Comment puis-je effectuer une opération mathématique comme cos et sin dans Javascript ou jQuery?

function searchLocationsNear(center) { 
    var radius = document.getElementById('radiusSelect').value; 
    lat1=center.lat(); 
    alert(lat1); 
    lng1=center.lng(); 
    alert(lng1); 
    var distance1=(3959 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat)))) ; 
    alert(distance1); 
    var searchUrl = 'example.xml'; 
    GDownloadUrl(searchUrl, function(data) { 
     var xml = GXml.parse(data); 
     var markers = xml.documentElement.getElementsByTagName('marker'); 
     map.clearOverlays(); 

     var sidebar = document.getElementById('sidebar'); 
     sidebar.innerHTML = ''; 
     if (markers.length == 0) { 
     sidebar.innerHTML = 'No results found.'; 
     map.setCenter(new GLatLng(40, -100), 4); 
     return; 
     } 

Répondre

3

Je ne pense pas que le code devrait afficher quelque chose, puisque vous utilisez des variables qui ne sont pas définies. En JavaScript, toutes les fonctions mathématiques sont sous the Math object. Donc, utilisez Math.sin et cetera.

Il pourrait également être utile de vérifier si la bibliothèque Google Map contient déjà quelque chose pour calculer la distance entre deux points. Cela ressemble à quelque chose qu'ils incluraient certainement.

1

Vous pouvez jeter un oeil à la Math object qui contient entre autres des fonctions trigonométriques.

+1

Nice page, URL ** ** horribles. –

2

Utilisez l'objet Math: Math.sin() et Math.cos()