Entfernungsberechnung für große und kleine Distanzen
This commit is contained in:
		
							parent
							
								
									46295f8139
								
							
						
					
					
						commit
						7d3a113ba3
					
				|  | @ -45,6 +45,25 @@ class Page(): | |||
|             rotated.append((ox + fc * dx - fs * dy, oy + fs * dx + fc * dy)) | ||||
|         return rotated | ||||
| 
 | ||||
|     @staticmethod | ||||
|     def rhumb(lat1, lon1, lat2, lon2): | ||||
|         # Distance in m | ||||
|         lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) | ||||
|         dlon = lon2 - lon1 | ||||
|         dlat = lat2 - lat1 | ||||
|         mlat = (lat1 + lat2) / 2 | ||||
|         return 6371000 * sqrt(dlat**2 + (cos(mlat) * dlon)**2) | ||||
| 
 | ||||
|     @staticmethod | ||||
|     def haversine(lat1, lon1, lat2, lon2): | ||||
|         # Great circle distance in nm | ||||
|         lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) | ||||
|         dlon = lon2 - lon1 | ||||
|         dlat = lat2 - lat1 | ||||
|         a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 | ||||
|         c = 2 * asin(sqrt(a)) | ||||
|         return c * 3440 | ||||
| 
 | ||||
|     def __init__(self, pageno, cfg, boatdata): | ||||
|         self.pageno = pageno | ||||
|         self.cfg = cfg | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue