Эластичный BeanStalk - Пользовательский узел AMI

Некоторые из этих ответов «округляют» радиус земли. Если вы проверите их с другими калькуляторами расстояния (например, география ), эти функции будут отключены.

Вы можете отключить R=3959.87433 для константы преобразования ниже, если вы хотите ответьте в милях.

Если вам нужны километры, используйте R= 6372.8.

lon1 = -103.548851
lat1 = 32.0004311
lon2 = -103.6041946
lat2 = 33.374939


def haversine(lat1, lon1, lat2, lon2):

      R = 3959.87433 # this is in miles.  For Earth radius in kilometers use 6372.8 km

      dLat = radians(lat2 - lat1)
      dLon = radians(lon2 - lon1)
      lat1 = radians(lat1)
      lat2 = radians(lat2)

      a = sin(dLat/2)**2 + cos(lat1)*cos(lat2)*sin(dLon/2)**2
      c = 2*asin(sqrt(a))

      return R * c

print(haversine(lat1, lon1, lat2, lon2))
0
задан John Rotenstein 27 March 2019 в 10:27
поделиться