Edited at

地球上の2点間の直線距離を求める


※新しい内容をこちらに移植しました。 → 【JavaScript】地球上の2地点間の距離を取得するアルゴリズム比較


概要


  • GPSを使って地球上の2点間(新宿と現地点)の直線距離を求める

  • GeoLocationAPIを利用してみた。

  • 球面三角法を利用


参考

【JavaScript】地球上の2地点間の距離を取得するアルゴリズム比較

地球を測ろう

測量計算サイト


ソース


index.js

//2点間を計算する関数
var getSuccess = function(pos) {
//現在地 lat:緯度,lng:経度
var geo = {
lat: pos.coords.latitude,
lng: pos.coords.longitude
};
//現在地の緯度経度
var lat1 = geo.lat;
var lng1 = geo.lng;

/*新宿の座標*/
var lat2 = 35.689487;
var lng2 = 139.691706;

//距離の計算//
function getDistance(lat1, lng1, lat2, lng2) {

function radians(deg){
return deg * Math.PI / 180;
}

return 6378.14 * Math.acos(Math.cos(radians(lat1))*
Math.cos(radians(lat2))*
Math.cos(radians(lng2)-radians(lng1))+
Math.sin(radians(lat1))*
Math.sin(radians(lat2)));
}
/*結果*/
alert(getDistance(lat1,lng1,lat2,lng2));
};

//GPSエラーの場合
var geoError = function() {
alert('Getting location failed.');//
};

/*GeoLocationAPIで現在地の座標を取得する*/
document.getElementById("start").onclick = function(){
navigator.geolocation.getCurrentPosition(getSuccess, geoError, { enableHighAccuracy: true });
};



追記 2018/09/10

【JavaScript】地球上の2地点間の距離を取得するアルゴリズム比較