Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

Selektieren nach Google Koordinaten

Letzter Beitrag 10-05-2008 18:45 von Claudius Ceteras. 1 Antworten.
Seite 1 von 1 (2 Treffer)
Beiträge sortieren: Zurück Weiter
  • 10-01-2008 14:59

    Selektieren nach Google Koordinaten

    Hallo zusammen,

     ich habe eine Google Maps, hier kann ich mir ja die angezeigten Kooridanten von Süd-Westlichen und Nord-Östlichen Punkt geben lassen.

    Diese Infos würde ich gerne per Webservice an meine ASP.NET Anwendung schicken und anhand dieser ein Select auf eine Datenbank machen, in der Lat- und Lng- Koordinaten abgelegt sind. Ich möchte dann alle Datensätze selektieren, die sich im momentan aktiven Fenster der Karte befinden. Nur hab ich keinen Plan, wie ich dass dann Select-mäßig mache. Reichen mir da die zwei Punkte Süd-West und Nord-Ost ???

     Gruß

     

    Tom

    • IP-Adresse ist Registriert
  • 10-05-2008 18:45 Antwort zu

    AW: Selektieren nach Google Koordinaten

    Hi Thomas,

    > ich habe eine Google Maps, hier kann ich mir ja die angezeigten
    >Kooridanten von  Süd-Westlichen und Nord-Östlichen Punkt geben lassen.
    [..]
    > Select auf eine Datenbank machen, in der Lat- und Lng- Koordinaten abgelegt sind.
    [..]

    Ansichts-Ausschnitt der gmap:

         ne
    +----+
    |     |
    +----+
    sw

    Beide Punkte bestehen aus einem Latitude- und einen Longitude-Wert.

    Wenn Du eine Weltkarte vor Dir hast, ist der Longitude-Wert im Prinzip die X-Koordinate, also die Entfernung in Grad vom Nullmeridian in Greenwich und der Latitude-Wert die Y-Koordinate, also die Entfernung in Grad vom Äquator.

    Longitude hat den Wertbereich -180°(westlich) bis +180°(östlich) Latitude hat den Wertbereich -90(südlich) bis +90(nördlich)

    Solange sw.lat<ne.lat ist, schneidet dein Sichtfenster nicht den Longituden-Übergang von -180 auf +180 und Du kannst einfach so abfragen:

    select * from Orte where long between [sw.long] and [ne.long] and lat between [sw.lat] and [ne.lat]

    Falls sw.lat>ne.lat dann muss die Abfrage so lauten:

    select * from Orte where (long>[sw.long] or long<[ne.long]) and lat between [sw.lat] and [ne.lat] oder so:
    select * from Orte where long not between [ne.long] and [sw.long] and lat between [sw.lat] and [ne.lat]
    (wichtig: not vor between und ne.long und sw.long vertauscht)

    Man kann das natürlich auch beides in einer Abfrage machen oder in einer SP erstmal die Fallunterscheidung machen und dann die entsprechende Abfrage benutzen.


    Gruß

    Claudius

    • IP-Adresse ist Registriert
Seite 1 von 1 (2 Treffer)