wie Geofence-Koordinaten berechnen?

  • Zitat

    Original von karomue
    Ist das Excel-File wirklich das Ursprungsformat oder kommt das evt. doch anders rein?


    ja sicherlich, jedoch auf dem SQL-Server.

    Zitat


    Es ist etwas ungewöhlich, sollte aber machbar sein. Ich finde aber keinen Zeitstamp.


    Ich habe jetzt mal allen anderen Ballst weggelassen, da ich dachte es wären mal die Lat/Lon wichtig. Somit auch den Tmestamp u.a. nicht exportiert.

    Zitat


    Dann wäre noch festzulegen, ob die Fahrten überall beginnen können oder evtl. immer im Kreisfeld starten. Dann müsste ich eine Ausblendung des ersten "raus"-Wertes einfügen.


    kann ich noch gar nicht sagen, welche Anforderungen damit verknüpft werden sollen. Ich denke aber, es wird ein Stadnort mit Radius definiert, in welchem dann das Event "Ein- und/oder Ausfahrt" geloggt bzw. gelistet wird.

    Zitat


    Und wie wollen wir weitermachen? Ich kann Dir den Entfernungsteil als Excel-Makro geben. Nach Anpassung einiger Zellenadressen sollte es mit einem zusätzlichen Vergleich gegen alle Koordinatenzeilen laufen.


    Ich finde es echt cool, dass Du Dich zu meinem Problem da jetzt so reingehängst :)


    Mein Problem ist es aber weiter, dass die Berechnung auf dem SQL-Datenbank bereits berechnet/gelistet wird, um dann browserbasiert per ASP abgefragt werden zu können. Somit bin ich auf eine ASP-fähige Berechnungs(-formel) angewiesen. Dass wird eben schwierig werden. Um das mal an einem Beispiel festzumachen, schau mal unter


    http://www.web-dispo.de


    unter Gastzugang bei Ortung die Funktion "EventOrtung" an.


    Da ist zwar die Definition des Mittelpunktes als gegeben von der Zentrale vorab lt. Kundenwunsch zu erfassen, doch kann der User dann nach Einrichtung des Standortes, Radius und einen Katalog damit verknüpfter Events zeitabhängig bestimmen.


    Gruss, kaba

    3 Mal editiert, zuletzt von kaba ()

  • Hallo kaba,


    jetzt habe ich wieder Verständnisschwierigkeiten, was ist "ASP-fähig".


    Aber zäumen wir das Pferd mal anders herum auf.


    Das Problem ist doch, im Abtastintervall jede Koordianate darauf zu überprüfen, ob ein Absztand zum Mittelpunkt über/unterschritten ist. Also eine If-Abfrage von deren Ergebnis es abhängt, was anschließend getan werden soll.


    Damit reduziert sich alles auf eine Entfernungsberechnung. Dafür gibt es folgende Formeln:


    Entfernung = M * 111,1 km (nach Wolfgang Linke, Orientierung mit Karte, Kompaß, GPS, 9. Auflage)


    (nach neueren Unterlagen 40030/360, = 111,19444...)


    M = arc cos (sin B1*sinB2+cosB1*cosB2*cosUL)


    Dabei ist UL der Längenunterschied in Grad.


    Oder als Excel-Makro-Fragment:



    Sub EntfernungMittelpunkt()


    Dim B1sin#, B2sin#, B1cos#, B2cos#, UL#, ULcos#, M#, M1#, M2#, W#, Pi ', TabAnfang%, z%,W!
    Dim MittelpunktB#, MittelpunktL#, Entfernung#, Merk As Boolean
    '%=Integer, !=Single


    'b1=tabanf/148, b2=tabanf+1/148,ul=abs(tabanf/149 - tabanf+1/149


    Pi = 3.14159265358979


    'Arkuskosinus(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)


    MittelpunktB = 48.3857
    MittelpunktL = 10.884
    Entfernung = 500
    Merk = False


    'AuswFeld 128 = Spalte 148, Breite, 129=149, Länge



    For i = TabAnfang + 1 To z
    If ((Cells(i, AuswertFeld(128, 2)).Value > 0 And Cells(i, AuswertFeld(129, 2)).Value)) > 0 Then
    B1sin = Sin(MittelpunktB * Pi / 180)
    B2sin = Sin(Cells(i, AuswertFeld(128, 2)).Value * Pi / 180)
    B1cos = Cos(MittelpunktB * Pi / 180)
    B2cos = Cos(Cells(i, AuswertFeld(128, 2)).Value * Pi / 180)
    UL = Abs(MittelpunktL - Cells(i, AuswertFeld(129, 2)).Value)
    ULcos = Cos(UL * Pi / 180)
    M = B1sin * B2sin + B1cos * B2cos * ULcos
    W = Sqr(-M * M + 1)
    M1 = (Atn(-M / W) + 2 * Atn(1)) * 180 / Pi
    M2 = M1 * 40030 / 360 * 1000 'in m
    If M2 > Entfernung + 10 And Merk = False Then
    Cells(i, AuswertFeld(133, 2)).Value = "raus"
    Cells(i, AuswertFeld(134, 2)).Value = Cells(i, AuswertFeld(1, 2)).Value
    Merk = True
    End If
    If M2 < Entfernung - 10 And Merk = True Then
    Cells(i, AuswertFeld(133, 2)).Value = "rein"
    Cells(i, AuswertFeld(134, 2)).Value = Cells(i, AuswertFeld(1, 2)).Value
    Merk = False
    End If
    End If
    Next i


    Range(Cells(TabAnfang, AuswertFeld(131, 2)), Cells(z, AuswertFeld(131, 2))).Select
    'Range (Cells(2, AuswertFeld(16, 2)), Cells(2, AuswertFeld(16 + 12, 2))).Select
    Selection.NumberFormat = "#,##0.000"


    End Sub


    Ist das umsetzbar für Dich?


    Man muss wohl nur darauf achten, dass das Koordinatenformat richtig ist, bei mir bin ich von d,dddd° ausgegangen, und eine evtl. notwendige Umformung in Polarkoordinaten vorgenommen wird.


    Mir diesen Formeln sollte es möglich sein, jetzt weiter zu machen.


    O.K.?





    Hihi, bekomme ich jetzt Provision??? :D :]

    Einmal editiert, zuletzt von karomue ()

  • Hi Charly,


    Zitat

    Original von karomue
    jetzt habe ich wieder Verständnisschwierigkeiten, was ist "ASP-fähig".


    schaust Du unter:
    http://www.aspdatabase.de/aspdatabase/


    Zitat


    Mir diesen Formeln sollte es möglich sein, jetzt weiter zu machen.


    ich muss dazu sagen, dass mein Part in der Sache eigentlich an dem Punkt aufhört und ich den Thread meinem Kollegen weitergebe.
    Aber so grob wird man aus Deinem Quelltext bestimmt eine online ASP Abfrage aus der SQL stricken können, hoffe ich :)


    Zitat


    Hihi, bekomme ich jetzt Provision??? :D :]


    tja, wer weiss! Wenn Geld in der Kasse überbleibt, werden wir wohl noch externes Knowhow dazukaufen. Also bereithalten, Charly ! ;)


    Aber erstmals vielen Dank für Dein Engagement nochmals!!!


    Gruss, kaba

  • Hallo kaba,


    wir sind hier ja aufgeschlossen für alles, was mit Navigation im weiteren Sinne zusammenhängt.


    Halte uns also bitte - wenn möglich - etwas auf dem Laufenden.


    Wir sind halt neugierig... :D :] Und es dient der Information hier, was diese Gemeinschaft bewegen, anregen kann.


    Und alles ist ja in irgend einem Sinn immer relativ: kommt Feedback von Euch, kann das wiederum zur Erweiterung des Wissens hier führen. Damit können weitere Besucher evtl. auch wieder weiter geholfen werden....


    Den Link habe ich schon mal gespeichert. Könnte auch für mich allgemein - SQL, Datenbankabfragen, etc. interessant sein. Da werde ich sicher mal intensiever reinschauen.


    Und dann gibt es noch so ein Wunschprojekt: wenn es Geräte gäbe, die klein genug wären, würde ich gerne unserer Katze so ein Ding um den Hals binden. Einfach nur um mal zu sehen, wo sich eine Katze so denTag über aufhält. Und das kommt Euerem Grundproblem wohl schon ziemlich nahe.

    Einmal editiert, zuletzt von karomue ()

  • Zitat

    Original von karomue
    Halte uns also bitte - wenn möglich - etwas auf dem Laufenden.


    mache ich sicher!

    Zitat


    Und dann gibt es noch so ein Wunschprojekt: wenn es Geräte gäbe, die klein genug wären, würde ich gerne unserer Katze so ein Ding um den Hals binden. Einfach nur um mal zu sehen, wo sich eine Katze so denTag über aufhält.


    Also da gibt es schon was in der Art:
    Ich hatte kürzlich auch mit einem sehr kompetenten GPS-ler zu tun, welcher sowas für einen "Hundeclub" entwickelte :)
    Die Tierchen sind sehr teuer und auf einmal immer weg. Da ersann sich der Hundeliebhaber ein Ortungssystem fürs Halsband.


    Falls Dir wichtig, kontaktier doch mal unter:
    [EMAIL]k.hirschelmann[at]t-online.de[/EMAIL]


    bis denne einmal und nochmals vielen Dank für die Lösungssuche an Dich :gap,
    kaba

    2 Mal editiert, zuletzt von kaba ()