特定の分析を実行して、ポイント(店舗の場所)の周囲にバッファーを作成し、そのバッファー値内に他のポイント(ユーザーの場所)が存在するかどうかを確認します。シェイプを使用して距離を確認すると、geopyから取得した距離とは異なることがわかります。hasrsineの式はGeopyと一致し、距離の測定機能を使用したGoogleマップのチェックでもほぼ同じ距離が得られます
次に例を示します。
from shapely.geometry import Point, shape
from pyproj import Proj, transform
from geopy.distance import vincenty, great_circle
pt_store=Point(transform(Proj(init='EPSG:4326'),Proj(init='EPSG:3857'),-76.799614, 39.435307))
pt_user=Point(transform(Proj(init='EPSG:4326'),Proj(init='EPSG:3857'),-76.79989,39.43604))
vincenty((39.435307,-76.799614),(39.43604,-76.79989)).meters
great_circle((39.435307,-76.799614),(39.43604,-76.79989)).meters
pt_store.distance(pt_user)
Vincenty:84.77847691521336
Great_circle:84.90640111682812
格好の良い:110.02637304449682
半正矢式(http://www.movable-type.co.uk/scripts/latlong.html):84.88
どちらが正しいですか?格好良いですか?また、このような大きな違い(〜22%)が予想されますか?それとも何か不足していますか?
EPSG:3857
番目のポイントについての簡単なメモ-Shapelyはここでは間違った選択です。Webメルカトルは非準拠であり、距離の計算に使用しないでください。