给定一个点 (django.contrib.gis.geos.Point) 我如何找到距离该点对象以东 1 英里的另一个点?
(A) ---[ 1 mile ]---> (B)
我失败的尝试:
我考虑过尝试对 1 英里东点 进行硬编码,但由于 到地球的曲率。每度变化的英里数。
Copius 在 SO 和 Geo Info Exchange 上进行谷歌搜索。我想我找不到术语?
- python 3.6
- Django 1.11
最佳答案
您可以使用 Geod class 完成此操作pyproj 的。
from pyproj import Geod
geoid = Geod(ellps='WGS84')
def add_distance(lat, lng, az, dist):
lng_new, lat_new, return_az = geoid.fwd(lon, lat, az, dist)
return lat_new, lng_new
- lng: 起始经度
- lat: 起始纬度
- az:方位角,运动的方向
- dist:以米为单位的距离
因此对于您的具体问题,您可以执行以下操作:
from django.contrib.gis.geos import Point
def move_point_mile_east(point):
dist = 1609.34
lat, lng = add_distance(point.y, point.x, 90, dist)
return Point(lng, lat)
关于python - GeoDjango:在给定方向上将坐标移动固定距离(例如,将一个点向东移动一英里),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643573/