calculate distance and azimuth between two points.
# install
npm install
- 言語
- JavaScript
- 環境
- Node.js (v7.2.0)
- OS
- macOS Sierra (v10.12.1)
計算方法は下記のサイトを参考
計算にはGRS80を使用
# file
app/calculator/cricular.js
# file
app/calculator/vincenty.js
経緯度を用いた2地点間の測地線長、方位角を求める計算 は複雑過ぎたため、Vincenty法 にて実装
# file
app/calculator/hubeny.js
計算方法は下記のサイトを参考
計算にはGRS80を使用
# file
app/calculator/vincenty.js
距離、方位角それぞれについてパフォーマンスを測定
距離のみそれぞれの方法での計算時間と速度を比較し、コンソールにテーブル出力
# ランダムに生成した100,000地点間の距離を計算
# 計算に要した
# - 合計時間
# - 1msあたりの計算回数
# をテーブル主力
npm run-script speed-dist
ヒュベニの公式がもっと速く、Vincenty法がもっとも遅い
距離、方位角ともにそれぞれの方法で計算し、国土地理院のAPIから取得した値と比較
計算結果とAPI値との差をコンソールにテーブル出力
# -------------------------------------------
# 距離
# -------------------------------------------
# ランダムに生成した10地点間の距離を計算
# 国土地理院のAPIから10地点間の距離を取得
# 距離の一覧とAPI値との差をコンソールにテーブル出力
npm run-script accuracy-dist
# -------------------------------------------
# 方位角
# -------------------------------------------
# ランダムに生成した10地点間の方位角を計算
# 国土地理院のAPIから10地点間の方位角を取得
# 方位角の一覧をコンソールにテーブル出力
npm run-script accuracy-direction
精度はVincenty法がもっと高く誤差は0.001%以下
地球を球と仮定した方法は常に誤差0.5%以下あるのに対し、ヒュベニの公式は場所によっては50%を超えた