Suite

La distance avec le calcul de relèvement ne fonctionne pas


J'ai cette fonction en Python qui calcule la distance à partir d'un point avec relèvement. Le problème est que la partie latitude génère la mauvaise réponse et je ne peux pas comprendre où je me suis trompé :

def add_distance(soi, lat, lon, relèvement, distance): d = distance/6371 x = sin(lat) * cos(d) + cos(lat) * sin(d) * cos(relèvement) new_lat = asin( float (x) ) new_lon = lon + atan2(sin(bearing)*sin(distance/6371)*cos(lat), cos(distance/6371)-sin(lat)*sin(new_lat)) print '	New Lat : %s' % (new_lat ) print '	New Lon:%s' % new_lon return"

Voici le code prêt à l'emploi pour trouver de nouvelles latitude et longitude pour des paramètres donnés (lat, long, relèvement, distance). Espérons que cela aidera.

# requis import import math # rayon standard de la terre EARTH_RADIUS = 6371.00 def add_distance(self, lat, lon, Bearing, distance): # convertir Latitude et Longitude # en radians pour le calcul latitude = math.radians(lat) longitute = math.radians( lon) # calculer la prochaine latitude next_latitude = math.asin(math.sin(latitude) * math.cos(distance/EARTH_RADIUS) + math.cos(latitude) * math.sin(distance/EARTH_RADIUS) * math.cos(math. radians(relèvement))) # calculer la prochaine longitude next_longitude = longitute + (math.atan2(math.sin(math.radians(bearing)) * math.sin(distance/EARTH_RADIUS) * math.cos(latitude), math.cos (distance/EARTH_RADIUS) - math.sin(latitude) * math.sin(next_latitude) ) ) # convertir les points en degrés décimaux new_lat = math.degrees(next_latitude) new_lon = math.degrees(next_longitude) # imprimer la nouvelle latitude et longitude imprimer '	New Lat:{0}'.format(new_lat ) print '	New Lon:{0}'.format(new_lon)

Prendre plaisir!