2010-08-28 40 views
1

我有一個searchlocationNear函數,爲此我傳遞geocoded數據,我需要根據經度和緯度值計算距離,但在距離警報函數中,它顯示的是未定義的是他們的任何與我的代碼有關的問題。如何在Javascript或jQuery中執行像cos和sin這樣的數學運算?

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; 
     } 

回答

3

我不認爲代碼應該顯示任何東西,因爲您使用的是未定義的變量。在JavaScript中,所有的數學函數都在the Math object之下。所以使用Math.sin等等。

也許值得檢查一下,如果谷歌的地圖庫已經包含了一些東西來計算兩點之間的距離。這聽起來像他們肯定會包括的東西。

1

你可以看看其中包含三角函數的Math object

+1

尼斯頁面,** **可怕的URL。 – 2010-08-28 11:35:39

2

使用數學對象:Math.sin()Math.cos()

相關問題