Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1562 | Anzahl registrierter User: 1893 | Besucher online: 251
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Geodaten in sexagesimal Format umrechnen


Autor: Jan Welker
Sprache: C#
Bewertung: 1,8
(1 Bewertung)
Anzahl der Aufrufe: 7800
  
Kick it on dotnet-kicks.de  

Beschreibung:

Der Snippet wandelt Längen und Breitengrade in das so genannte sexagesimal Format um.

Beispiel:

ConvertDecimalDegreesToSexagesimal(37,4219720)


ergibt: 37° 25' 1519''


Abgelegt unter: Geodaten, Längengrad, Breitengrad, sexagesimal, Mathe, longitude, latitude.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
/// <summary>
/// Converts the decimal degrees to sexagesimal.
/// </summary>
/// <param name="decimalValueToConvert">The decimal value to convert.</param>
/// <returns></returns>
private string ConvertDecimalDegreesToSexagesimal(double decimalValueToConvert)
{
    int degrees = (int)decimalValueToConvert;
    int minutes = (int)((decimalValueToConvert - degrees) * 60);
    int seconds = (int)((decimalValueToConvert - degrees - (minutes / 60)) * 3600);

    return String.Format("{0}° {1}' {2}''", degrees, minutes, seconds);
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Weh Pung schrieb am:  12.02.2009 16:43:14

Der Code liefert folgende Reihe (was er wohl nicht sollte):
0,01611111111111111 0° 0' 58''
0,01638888888888889 0° 0' 59''
0,01666666666666666 0° 1' 60''
0,01694444444444444 0° 1' 61''

Besser ist:

/// <summary>
/// Converts the decimal degrees to sexagesimal.
/// </summary>
/// <param name="decimalValueToConvert">The decimal value to convert.</param>
/// <returns></returns>
private string ConvertDecimalDegreesToSexagesimal(double decimalValueToConvert)
{
int degrees = (int)decimalValueToConvert;
int minutes = (int)((decimalValueToConvert - degrees) * 60);
int seconds = (int)((decimalValueToConvert - degrees - (minutes / 60)) * 3600) % 60; //60 Sekunden pro Minute

return String.Format("{0}° {1}' {2}''", degrees, minutes, seconds);
}
Weh Pung schrieb am:  12.02.2009 16:45:49

Warum hat der Artikel eigentlich eine 1,8 als Bewertung bei einer Bewertung (meiner), die ich als 1 abgegeben habe?
Ist da etwa auch ein Konvertierungsbug im Bewertungssystem? ;-)
Jan Welker schrieb am:  12.02.2009 16:53:08

Hallo,

siehe unter "Wie werden die Snippets bewertet?" auf der Seite http://dotnet-snippets.de/dns/topten.aspx wie die Snippets bewertet werden.

Jan
Jürgen Gutsch schrieb am:  12.02.2009 16:54:19

@Weh Pung
Siehe hier: http://dotnet-snippets.de/dns/topten.aspx
(ganz unten)

(a * 4 + 5) / (b * 4 + 1)
a = Bewertung
b = Anzahl Bewertungen
(1 * 4 + 5) / (1 * 4 + 1) = 8 / 5 = 1,8


Diese Snippets könnten für Sie interessant sein:
[C#] Summe 1..n berechnen
[C#] Fibonacci-Folge berechnen
[C#] n-te Fibonaccizahl rekursiv berechnen
[C#] Summe 1²...n² berechnen.
[C#] Summe 1³..n³ berechnen.
[C#] größten gemeinsamen Teiler berechnen.
[VB.NET] Multiplikation von übergroßen Zahlen
[C#] Dreiecksberechnung
[VB.NET] PI nach der Bailey-Borwein-Plouffe-Formel berechnen
[VB.NET] Quadratische Gleichung mit der PQ Formel lösen
[VB.NET] Basisrechenfunktionen für einen Kreis
[C++] Exponents
[C#] Quersummenberechnung
[VB.NET] Größten gemeinsamen Teiler berechnen
[VB.NET] Quadratwurzel ohne Sqrt() Funktion ziehen
[C#] Addiere alle ganzen Zahlen von x bis y
[C++] Caesar
[C#] "echte" Teiler Summe berechnen
[C#] Formelevaluierung aus RPN Form
[C#] Prüfung auf narzisstische Zahlen
[C#] CellMatrix
[C#] Maschinengenauigkeit
[C#] Flächenberechnungen am Kreis,Quadrat,Parallelogramm,Trapez
[C#] Bruch-Klasse
[VB.NET] einfacher rekursiver Mathe Parser
[VB.NET] Permutation nachweisen
[VB.NET] Das Sieb des Eratosthenes
[VB.NET] Primfaktorzerlegung
[VB.NET] Größter gemeinsamer Teiler
[VB.NET] Modulare Exponentation
[VB.NET] Fibonacci-Folge iterativ erzeugen
[VB.NET] Das Sieb von Atkin
[VB.NET] Das Sieb von Atkin (2)
[VB.NET] Werte zweier Variablen tauschen
[VB.NET] Ganzzahlige Wurzel
[VB.NET] Binäre Exponentation
[VB.NET] Größter gemeinsamer Teiler (2)
[VB.NET] Binomialkoeffizient
[VB.NET] Kleinster natürlicher Teiler > 1
[VB.NET] Das Sieb von Atkin (2) - aktuell
[VB.NET] Dezimalzahl in Zahl der Basis b < 37 konvertieren
[C#] Geografische Koordinaten mit der Google Maps API abfragen
[C#] Entfernung zwischen zwei geografischen Koordinaten berechnen
[C#] Berechnung der Entfernung zwischen GPS-Koordinaten
[C#] GeoLocation einer IP Adresse ermitteln

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.