Umkreissuche mit Access 2013 VBA
Hallo,
ich bin auf der Suche nach einer Anleitung zur Umkreissuche mit Access 2013.
Wir haben hier von der Post Geodaten, die wir in unseren Web-Plattformen nutzen.
Nun würde ich gerne für eine interne Access-Datenbank eine Umkreissuche realisieren, jedoch finde ich keinen vernünftigen Ansatz oder Anleitung.
Hat jemand Erfahrung damit, wie ich das in Access realisieren kann?
Danke
ich bin auf der Suche nach einer Anleitung zur Umkreissuche mit Access 2013.
Wir haben hier von der Post Geodaten, die wir in unseren Web-Plattformen nutzen.
Nun würde ich gerne für eine interne Access-Datenbank eine Umkreissuche realisieren, jedoch finde ich keinen vernünftigen Ansatz oder Anleitung.
Hat jemand Erfahrung damit, wie ich das in Access realisieren kann?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 268514
Url: https://administrator.de/contentid/268514
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
14 Kommentare
Neuester Kommentar
Moin,
z.B. mit dem Google Distance Matrix API, damit kannst du via URL eine JSON-Kodierte Antwort mit der Distanz zwischen zwei Punkten erhalten:
Beispiel:
http://maps.googleapis.com/maps/api/distancematrix/json?origins=Branden ...
Gruß jodel32
z.B. mit dem Google Distance Matrix API, damit kannst du via URL eine JSON-Kodierte Antwort mit der Distanz zwischen zwei Punkten erhalten:
Beispiel:
http://maps.googleapis.com/maps/api/distancematrix/json?origins=Branden ...
Gruß jodel32
Eigentlich ist das ganz einfach, wenn man mal genau darüber nachdenkt. Im einfachsten Fall brauchst du noch nicht mal VBA für die Lösung, sondern nur eine SQL Query und ein bisschen Trigonometrie-Grundlagen der ersten Klasse.
Du brauchst zwei Tabellen, einmal eine Tabelle mit den Koordinaten der Postleitzahlen und die andere mit den Koordinaten deiner POIs.
Jetzt zur Theorie:
Berechnung der Entfernung zwischen zwei Koordinaten:
Wir môchten erst mal wissen wie weit 1 Grad in Kilometern sind. Dazu berechnen wir uns den Umfang der Erde und teilen das ganze durch 360:
Nun kommt der Satz des Pytagoras ins Spiel (a2 + b2 = c2).
Erhalten wollen wir c also die Hypothenuse
... also ziehen wir jeweils die Breiten in Längengrade der POIs und Referenzen der PLZ-Koordinaten voneinander ab, nehmen deren absolute Werte, multiplizieren sie mit der Entfernung die wir anfangs berechnet haben, und setzen sie für a und b in die Gleichung ein, zum Schluss wir daraus die Wurzel gezogen > nun haben wir die Entfernung.
Diese Berechnung lässt sich in einer einfach SQL-Select Query machen und das Ergebnis mit einer in einem Formular auszuwählenden KM-Anzahl vergleichen und so die Ergebnisse direkt in einem Unterformular darstellen.
Wenn man das mit einer Abfrage macht musst du dich noch nicht mal mit SQL auseinandersetzen, es braucht nur etwas Mathe. aus der Schule
Gruß jodel
Du brauchst zwei Tabellen, einmal eine Tabelle mit den Koordinaten der Postleitzahlen und die andere mit den Koordinaten deiner POIs.
Jetzt zur Theorie:
Berechnung der Entfernung zwischen zwei Koordinaten:
Wir môchten erst mal wissen wie weit 1 Grad in Kilometern sind. Dazu berechnen wir uns den Umfang der Erde und teilen das ganze durch 360:
(2 x PI x 6378) / 360 = Entspricht der Entfernung für 1 Grad
Nun kommt der Satz des Pytagoras ins Spiel (a2 + b2 = c2).
Erhalten wollen wir c also die Hypothenuse
c = Wurzel(a2 + b2)
... also ziehen wir jeweils die Breiten in Längengrade der POIs und Referenzen der PLZ-Koordinaten voneinander ab, nehmen deren absolute Werte, multiplizieren sie mit der Entfernung die wir anfangs berechnet haben, und setzen sie für a und b in die Gleichung ein, zum Schluss wir daraus die Wurzel gezogen > nun haben wir die Entfernung.
Diese Berechnung lässt sich in einer einfach SQL-Select Query machen und das Ergebnis mit einer in einem Formular auszuwählenden KM-Anzahl vergleichen und so die Ergebnisse direkt in einem Unterformular darstellen.
Wenn man das mit einer Abfrage macht musst du dich noch nicht mal mit SQL auseinandersetzen, es braucht nur etwas Mathe. aus der Schule
Gruß jodel
Hallo!
Da hat man aber "nur" die Luftlinie. Bei der lokalen Variante muss man mit ungenauen Entfernungsangaben leben. Wenn da ein Berg zwischen den beiden Orten ist, wird sich das sicherlich auswirken
Die Google-Variante bietet da schon mehr Komfort (Auto, Fußgänger, Straßenverlauf, etc.)
Für eine Entscheidung sollte man sich dessen bewusst sein.
Gruß
Eisbein
Da hat man aber "nur" die Luftlinie. Bei der lokalen Variante muss man mit ungenauen Entfernungsangaben leben. Wenn da ein Berg zwischen den beiden Orten ist, wird sich das sicherlich auswirken
Die Google-Variante bietet da schon mehr Komfort (Auto, Fußgänger, Straßenverlauf, etc.)
Für eine Entscheidung sollte man sich dessen bewusst sein.
Gruß
Eisbein
Hallo evolution,
hier kannst du dir die Umkreissuche (Luftlinie) anhand einer Demo-Datenbank abschauen:
Umkreissuche_Access_268514.zip
Diese Variante ist offline nutzbar.
Die Geodaten der Postleitzahlen stammen aus dem OpenGeoDB Projekt.
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
hier kannst du dir die Umkreissuche (Luftlinie) anhand einer Demo-Datenbank abschauen:
Umkreissuche_Access_268514.zip
Diese Variante ist offline nutzbar.
Die Geodaten der Postleitzahlen stammen aus dem OpenGeoDB Projekt.
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
Wenns das dann war, den Beitrag bitte noch als gelöst markieren. Merci.
Hallo Uwe,
ist die klasse DB von Dir? Weiß Du zufällig wie ich die Treffer nicht in ein Formular sondern in ein Array schreiben kann. Wäre toll wenn du mir kurz anworten würdest. Viele Grüße Bernd
ist die klasse DB von Dir? Weiß Du zufällig wie ich die Treffer nicht in ein Formular sondern in ein Array schreiben kann. Wäre toll wenn du mir kurz anworten würdest. Viele Grüße Bernd
Doch der klappt selbstverständlich noch, du musst nur auf den Link des Downloads klicken, spenden, dann wirst du automatisch zum Download geleitet .