/ /なぜ地理定位のハーベシン式を使用したマンハッタン距離が正確でないのですか? [Python]-python、ジオロケーション、座標、距離、haversine

なぜマンハッタン地理位置特定のためのhaversine公式の距離が正確ではないのですか? [Python] - python、geolocation、coordinates、distance、haversine

LAT、LNGとの座標のペア間で「CITY BLOCK DISTANCE」とも呼ばれる「MANHATTAN DISTANCE」を計算したい。

この投稿に続いて 2つのジオロケーションのマンハッタン距離 Haversine式を使用して距離を計算しました。

source = (45.070060, 7.663708)
target = (45.068250, 7.663492)

ここに画像の説明を入力

これは私の計算です:

    from math import radians, sin, asin, sqrt, atan2

# convert decimal degrees to radians
lat1, lon1, lat2, lon2 = map(radians, [source[0], source[1], target[0], target[1]])

#haversine formula for delta_lat
dlat = lat2 - lat1
a = sin(dlat / 2) ** 2
c = 2 * atan2(sqrt(a), sqrt(1-a)))
r = 6371
lat_d = c * r

# haversine formula for delta_lon
dlon = lon2 - lon1
a = sin(dlon / 2) ** 2
c = 2 * atan2(sqrt(a), sqrt(1-a))
r = 6371
lon_d = c * r


print lat_d + lon_d

問題は、Google Mapsが270mであるのに対して、私の結果は225mであるということです。

距離を計算しようとしています

source = (45.070060, 7.663708)
target = (45.072800, 7.665540)

ここに画像の説明を入力

私が得た結果は508mですが、Googleマップは350mと言います。

ここで何が間違っているのか、どのようにこの解決策を改善するのかを理解するのを誰かが助けてくれれば幸いです。 ありがとうございました!

回答:

回答№1は1

私はおそらく自分自身にポイントを得た、答えは上記の元の質問と同じ写真を見ると、実装したHaversineメソッドが距離を画像のRED LINEとして計算していることがわかります。このため、最初のケースでは270mではなく225mを取得します(赤い線は三角形の斜辺であるために低くなります)。したがって、この問題を解決する方法は、CITY MAP COUNTERCLOCKWISEを回転させて、青の点線をデカルト基準のY軸に合わせる必要があります。

任意の提案をいただければ幸いです。ありがとうございました ここに画像の説明を入力ここに画像の説明を入力