私が持っている座標ごとに、赤道からの距離をキロ単位で見つけて、2 つの距離を計算します。
from pyproj import Geod
wgs84_geod = Geod(ellps='WGS84')
_,_, lon_dist = wgs84_geod.inv(0, 0,lon, 0)
_,_, lat_dist = wgs84_geod.inv(0, 0,0, lat)
健全性チェックとして、次のようにこれらの値から元の座標を再計算できます (赤道座標 (0,0) からの方向が北と西であると仮定します。
_, new_lat, _ = wgs84_geod.fwd(0,0, 0, lat_dist)
new_lon, _, _ = wgs84_geod.fwd(0, 0, 90, lon_dist)
これにより、元の座標が返されます。
ここで、自分の座標に最も近いキロメートル ポイントを見つけたいと思います。lon_dist と lat_dist を赤道の値からキロメートルに丸めます。
lat_km_dist = round(lat_dist/1000)*1000 #to nearest km and back to meters
lon_km_dist = round(lon_dist/1000)*1000
以前と同じ方法でこれらの距離を使用して座標を取得します
_, km_lat, _ = wgs84_geod.fwd(0,0, 0, lat_km_dist)
km_lon, _, _ = wgs84_geod.fwd(0, 0, 90, lon_km_dist)
ロジックは、同じエリア内の複数の座標の場合、km_lat と km_lon のペア間の最も近い距離は 1km である必要があります。これは北/南軸に当てはまりますが、経度の場合、現在の緯度によって距離が異なります。km_lat、km_lon 座標が 1km の面積を持つポリゴンの中心にある黒い円で表される問題を視覚化するために、2 つのスクリーンショットを添付しています。
これを修正するにはどうすればよいですか?