¿Hay algún código de conversión de muestra en C# para pasar de grados decimales a Grados, Minutos, Segundos, Décimo?Convertir de Grados decimales a Grados Minutos Segundos décimas.
6
A
Respuesta
8
Creo que esto debería hacerlo.
double decimal_degrees;
// set decimal_degrees value here
double minutes = (decimal_degrees - Math.Floor(decimal_degrees)) * 60.0;
double seconds = (minutes - Math.Floor(minutes)) * 60.0;
double tenths = (seconds - Math.Floor(seconds)) * 10.0;
// get rid of fractional part
minutes = Math.Floor(minutes);
seconds = Math.Floor(seconds);
tenths = Math.Floor(tenths);
27
Aquí hay una clase que hice hace tiempo.
public class GeoAngle
{
public bool IsNegative { get; set; }
public int Degrees { get; set; }
public int Minutes { get; set; }
public int Seconds { get; set; }
public int Milliseconds { get; set; }
public static GeoAngle FromDouble(double angleInDegrees)
{
//ensure the value will fall within the primary range [-180.0..+180.0]
while (angleInDegrees < -180.0)
angleInDegrees += 360.0;
while (angleInDegrees > 180.0)
angleInDegrees -= 360.0;
var result = new GeoAngle();
//switch the value to positive
result.IsNegative = angleInDegrees < 0;
angleInDegrees = Math.Abs(angleInDegrees);
//gets the degree
result.Degrees = (int)Math.Floor(angleInDegrees);
var delta = angleInDegrees - result.Degrees;
//gets minutes and seconds
var seconds = (int)Math.Floor(3600.0 * delta);
result.Seconds = seconds % 60;
result.Minutes = (int)Math.Floor(seconds/60.0);
delta = delta * 3600.0 - seconds;
//gets fractions
result.Milliseconds = (int)(1000.0 * delta);
return result;
}
public override string ToString()
{
var degrees = this.IsNegative
? -this.Degrees
: this.Degrees;
return string.Format(
"{0}° {1:00}' {2:00}\"",
degrees,
this.Minutes,
this.Seconds);
}
public string ToString(string format)
{
switch (format)
{
case "NS":
return string.Format(
"{0}° {1:00}' {2:00}\".{3:000} {4}",
this.Degrees,
this.Minutes,
this.Seconds,
this.Milliseconds,
this.IsNegative ? 'S' : 'N');
case "WE":
return string.Format(
"{0}° {1:00}' {2:00}\".{3:000} {4}",
this.Degrees,
this.Minutes,
this.Seconds,
this.Milliseconds,
this.IsNegative ? 'W' : 'E');
default:
throw new NotImplementedException();
}
}
}
5
La solución here tiene la conversión en ambos sentidos.
double coord = 59.345235;
int sec = (int)Math.Round(coord * 3600);
int deg = sec/3600;
sec = Math.Abs(sec % 3600);
int min = sec/60;
sec %= 60;
** De Convert Degrees/Minutes/Seconds to Decimal Coordinates
+0
¡Funciona como un amuleto, muchas gracias! – Ginkgo
0
Usted puede simplemente utilizar estas 2 funciones:
public Tuple<int,int,int> DecimalToDegrees(decimal decimalValue)
{
return Tuple.Create(Convert.ToInt32(decimal.Truncate(decimalValue)),Convert.ToInt32((decimal.Truncate(Math.Abs(decimalValue)*60))%60),Convert.ToInt32((Math.Abs(decimalValue)*3600)%60));
}
Y:
public decimal DecimalToDegrees(int deg , int min , int sec)
{ //~2.3825224324453 Meters error due to accuracy
return deg+(min/60m)+(sec/3600m);
}
Cuestiones relacionadas
- 1. grados convertir/minutos/segundos a decimal Coordenadas
- 2. cómo convertir entre grados, minutos, segundos a coordenadas decimales
- 3. Convertir coordenadas decimales en grados, minutos, segundos, dirección
- 4. Convertir grados a radianes en ruby
- 5. Convertir segundos a días, minutos y segundos
- 6. Lat de largo a minutos y segundos?
- 7. Convertir números a grados en la lista de Python
- 8. ¿Cuál es el método para convertir radianes a grados?
- 9. ¿Cómo convertir los segundos a horas, minutos y segundos?
- 10. programa en C para convertir grados Fahrenheit a Celsius
- 11. UIImage Rotation grados personalizados
- 12. Brújula: de 359 a 0 grados
- 13. Grados de consulta de separación
- 14. CATransform3DRotate rotate para 360 grados
- 15. Forma simple de convertir HH: MM: SS (horas: minutos: segundos segundos) a segundos
- 16. Oracle Convert Segundos a horas: Minutos: Segundos
- 17. Javascript segundos a minutos y segundos
- 18. ¿Girando un CALayer 90 grados?
- 19. Convierte latitud/longitud en grados/radianes?
- 20. Convertir segundos a días, minutos y horas en Obj-c
- 21. ¿Cómo transformar una distancia de grados a metros?
- 22. Cómo convertir DD a DMS en Python
- 23. Símbolo de grados (como en grados Celsius/Fahrenheit) en un TextView
- 24. Coordenadas de GPS en grados para calcular distancias
- 25. Cómo rotar mi aplicación 180 grados boca abajo al girar el dispositivo 180 grados al revés?
- 26. Rotar un mapa de bits 90 grados
- 27. ¿Qué define los grados de cifrado?
- 28. Manera eficiente de convertir segundos a minutos y segundos en el servidor sql 2005
- 29. Rotar una matriz bidimensional en 90 grados
- 30. Writeablebitmap.SaveJpeg está girando mi imagen -90 grados
De lejos, esta es la mejor respuesta. –
Esto es bueno, pero a menudo veo segundos como un valor de coma flotante que se ahogará en – Dan