Как я могу выполнить математическую операцию, как cos и sin в Javascript или jQuery? - PullRequest
1 голос
/ 28 августа 2010

У меня есть функция searchlocationNear, для которой я передаю геокодированные данные, мне нужно рассчитать расстояние на основе значений широты и долготы, но во время функций оповещения о расстоянии оно отображается неопределенным, это их проблемы с моим кодом.

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 ]

3 голосов
/ 28 августа 2010

Я не думаю, что код должен что-либо отображать, так как вы используете переменные, которые не определены.В JavaScript все математические функции находятся под объектом Math .Так что используйте Math.sin и так далее.

Возможно, стоит проверить, содержит ли библиотека Google Map что-то для расчета расстояния между двумя точками.Это звучит как то, что они обязательно включат.

2 голосов
/ 28 августа 2010

Используйте объект Math: Math.sin() и Math.cos()

1 голос
/ 28 августа 2010

Вы можете взглянуть на Math объект , который содержит среди прочего тригонометрические функции.

...