Python GeoDjango:将坐标沿给定方向移动固定距离(例如,将点向东移动一英里)

Python GeoDjango:将坐标沿给定方向移动固定距离(例如,将点向东移动一英里),python,django,geodjango,Python,Django,Geodjango,给定一个点(django.contrib.gis.geos.Point),如何找到距离该点对象以东1英里的另一个点 (A) ---[ 1 mile ]---> (B) 我失败的尝试: 我曾考虑尝试对1英里东点进行硬编码,但由于 地球的曲率。每度英里数在变化 Copius谷歌搜索SO和地理信息交换。我想我找不到术语了吧 Python 3.6 Django 1.11 您可以使用pyproj的 from pyproj import Geod geoid = Geod(ellps='W

给定一个点(django.contrib.gis.geos.Point),如何找到距离该点对象以东1英里的另一个点

(A) ---[ 1 mile ]---> (B)

我失败的尝试:

  • 我曾考虑尝试对1英里东点进行硬编码,但由于 地球的曲率。每度英里数在变化

  • Copius谷歌搜索SO和地理信息交换。我想我找不到术语了吧


  • Python 3.6
  • Django 1.11

    • 您可以使用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:起始经度
      • 纬度:起始纬度
      • 方位角,运动的方向
      • 距离:以米为单位的距离
      因此,对于您的具体问题,您可以执行以下操作:

      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)