こんにちは、ユーザーの現在の位置と配列内のオブジェクトとの間の距離を取得するために正弦関数を使用するのに苦労しています。この質問に対する優れた答えを見つけましたが、実際の座標の代わりに変数を使用しようとすると、式は機能しません。 、うまくいけば、誰かが私が間違っている場所を知っているでしょう
これが私をここまで導いた質問です。Talkol さん、回答ありがとうございます
これは私がこれまでに得たものです
navigator.geolocation.getCurrentPosition (function (posa)
{
var lat = posa.coords.latitude.toFixed(6);
var lng = posa.coords.longitude.toFixed(6);
});
function getCurrent() {
var lat1 = lat;
var lon1 = lng;
var lat2 = 42.741;
var lon2 = -71.3161;
Number.prototype.toRad = function() {
return this * Math.PI / 180;
}
var R = 6371; // km
//has a problem with the .toRad() method below.
var x1 = lat2-lat1;
var dLat = x1.toRad();
var x2 = lon2-lon1;
var dLon = x2.toRad();
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
alert(d);
var distance = d
$("#distance").val (distance);
}