京急富岡駅を基準として正規化された緯度と経度を返す関数
2024年2月12日
// NormalizeCoordinates 京急富岡駅を基準として正規化された緯度と経度を返す関数
// C:\Users\ebata\tomioka_school\src\trip_school\NormalizeCoordinates.go
package main
import (
"fmt"
"math"
)
func NormalizeCoordinates(referenceLat, referenceLng, lat, lng float64) (float64, float64) {
// 1度あたりの緯度経度のメートル換算
metersPerDegreeLat := 111319.9 // 緯度1度あたりのメートル数
metersPerDegreeLng := 111319.9 * math.Cos(referenceLat*(math.Pi/180.0)) // 経度1度あたりのメートル数
// 緯度と経度の差を計算
deltaLat := lat - referenceLat
deltaLng := lng - referenceLng
// 正規化された緯度と経度を計算
normalizedLat := deltaLat * metersPerDegreeLat / 100.0
normalizedLng := deltaLng * metersPerDegreeLng / 100.0
return normalizedLat, normalizedLng
}
func main() {
// 京急富岡駅の緯度経度
keikyuTomiokaLat := 35.367131726654705
keikyuTomiokaLng := 139.62988318023088
// 確認用の緯度経度(富岡駅のバス停)
lat := 35.36605614545459
lng := 139.6295094178281
// 緯度経度の正規化
normalizedLat, normalizedLng := NormalizeCoordinates(keikyuTomiokaLat, keikyuTomiokaLng, lat, lng)
fmt.Printf("正規化された緯度: %.6f\n", normalizedLat)
fmt.Printf("正規化された経度: %.6f\n", normalizedLng)
}