Paso 4: GPS un edificio
Así que es bastante fácil guardar datos GPS de cuatro localidades. Les llamé NW, NE, SW, SE.
Problema: Cómo calcular distancias y rodamientos (dirección) entre dos puntos de latitud y longitud. El problema es que las latitudes y longitudes no son ciertas distancias uniformes aparte. Vea la foto.
Solución: Los cálculos son bastante intensos. He encontrado un sitio para esto:
http://www.Movable-Type.co.uk/scripts/latlong.html
Las matemáticas Geeks, ir a la Página Web. Por lo demás, hay dos fórmulas para el cálculo de distancias en una esfera. Uno se llama la fórmula de Haversine y el otro es ley esférica de cosenos. He probado ambos pero la mayoría de los expertos sugiere que el Haversine es más preciso. Esta es la función que he tomado prestada de la Página Web.
Public Function CalDistance (ByVal y+LAT1 como doble, Lon1 ByVal como doble,
ByVal Lat2 como doble, ByVal Lon2 como doble) como doble
Dim radio como doble = 20902231.0 ' número de pies en el radio de la tierra, basado en 6371kM
' Fórmula del Haversine
Dim como doble dLat = Lat2 - y+LAT1
Dim dLong como doble = Lon2 - Lon1
Dim como Double = Math.Sin(dLat / 2.0) * Math.Sin(dLat / 2.0) + _
Math.Cos(Lat1) * Math.Cos(Lat2) * Math.Sin(dLong / 2.0) * Math.Sin(dLong / 2.0)
Dim c como doble = 2.0 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1.0-a))
CalDistance = radio * c
End Function
Entender esto requiere la comprensión de la programación básica, álgebra y trigonometría.
Punta: La mayoría de lenguajes de programación requieren ángulos en radianes, no grados.
Para calcular el cojinete, usé esto:
Public Function CalBearing (ByVal y+LAT1 como doble, Lon1 ByVal como doble, ByVal Lat2 como doble, ByVal Lon2 como doble) como doble
Dim BearingRad como doble
BearingRad = Math.Atan2 ((Math.Sin (Lon2 - Lon1) * Math.Cos(Lat2)), _
Math.Cos(Lat1) * Math.Sin(Lat2) - Math.Sin(Lat1) * _
Math.Cos(Lat2) * Math.Cos (Lon2 - Lon1))
' Radianes = grados * (PI / 180)
' grados = 180 * radianes/pi
CalBearing = 180.0 * BearingRad / Math.PI
Normalizar) ' CalBearing = (CalBearing + 360) % 360
CalBearing = (CalBearing + 360.0) Mod 360.0
End Function
Una de las cosas agradables acerca de ese sitio web es que tiene una calculadora. Si escribes un programa como este, debe verificar sus algoritmos ejecutando algunos valores en el programa y enchufarlo en el sitio web para asegurarse de que obtener los mismos resultados.
ADVERTENCIA: Yo no enfrentar situaciones donde la latitud va de N a S o longitud va de E a w el. No estoy seguro de que la web no tanto.
Mi Intstructions: Ir a una del cuatro esquinas, actualizaciones de comenzar, espere el GPS reúne varias muestras (no me gusta entrar más de 100), luego haga clic en Guardar para la esquina correcta, ir a las otras tres esquinas y repita. Cuando termine, haga clic en calcular , las cuatro distancias y deben rellenar los rodamientos. Para guardar los datos, haga clic en archivo (esquina superior izquierda), seleccione Guardar, ingrese un nombre de archivo de texto. El archivo de texto está formateado en formato CSV (valores separados por comas) por lo que pueden ser importado en Excel.