Hallo Leute,
bin relativ neu hier
ich will ja nicht, dass hier jemand meine "Hausafgaben" macht (sind wirklich keine Hausaufgaben 😉)
Aber ich steh grad vor dem Problem, die Entfernung zweier Orte anhand der PLZ zu berechnen.
Man muss in ne Textbox seine PLZ eingeben und dann soll berechnet werden, wie weit diese person von einem bestimmten Ort weg ist (in km)
Gibts da ne Formel, die diese PLZ erst in die Koordinaten umrechnet und dann ne Art Gleichung, die mit den Koordinaten die Entfernung ausrechnet?
Sorry, wenn das alles jetzt sehr allgemein klingt, aber vll kann mir jemand hier doch helfen...
Danke
Der Claude
YOU THINK YOU KNOW ME..........
Postleitzahlen sind einfach nur willkürliche Zahlen. D.h. du benötigst Datensammlungen als Basis, die PLZs auf Geodaten oder ähnliches mappen.
Verfügst du über eine solche Datenbasis? Wenn Nein, keine Chance, falls Ja sind PLZ-Bereiche teilweise grosszügig und die Entfernung daher bestenfalls ungenau(ok, besser als keine).
Die Koordinaten für eine PLZ kannst du z.B. hierüber [1] herausbekommen.
Hallo der_claude,
erst einmal Hallo im Forum.
Aber wie ikaros gesagt hat, stecken hinter des Postleitzahlen keine sofort herleitbaren Informationen über die realen Abstände der Orte.
Du benötigst dafür eine Datenbank, die es eben ermöglicht zu einer Postleitzahl die grobe Position auf dem Erdball zurückzugeben (Breiten/Längengrad)
Damit kannst du dann über Formel, wie bei Wiki-Seemeile die echte Entfernung ausrechnen.
Es ist eben ein Umrechnung nötig und im Grunde müsste man wegen der Kugeloberfläche der Erde (die bloß bei kleinen Entfernungen als Ebene angesehen werden kann) eine noch kompliziertere Formel verwenden.
Da man aber einer PLZ eh keine "exakte" Position zuordnen kann, sollte das keine Rolle spielen.
Wie kommst du an solche Datensätze?
Die Anbieter von Online-Karten mit Suchen bietet häufig auch Webservices an, sodass du in ner URL (Anfrage) verpackt dein ort/PLZ hinschickst und als Seite n XML-Dokument zurückbekommst, wo die Koordinaten drinne sind.
Google-Earth bietet Schnittstellen an.
Yahoo-Maps auch
und Microsofts Local.Live sicherlich auch
Wobei ein Kontingent an monatlichen Anfragen kostet.
Allerdings ist es (wenn ich mich nicht irre) bei Yahoo möglich, bis zu einer bestimmen Anzahl Anfragen gratis zu schicken, wenn man sich (kostenlos) registriert.
Eine kommerzielle Nutzung ist dort dann aber ausgeschlossen.
Ohne Geld geht eben nix 🙂
Aber für kleine Spielereien gehts allemal.
beste Grüße
zommi
Noch ein Beispiel hintendran:
Wie hier beschrieben,
liefert:
http://local.yahooapis.com/MapsService/V1/geocode?appid=YD-9G7bey8_JXxQP6rxl.fBFGgCdNjoDMACQA--&street=701+First+Ave&city=Sunnyvale&state=CA
<ResultSet xsi:schemaLocation="urn:yahoo:maps [URL]http://api.local.yahoo.com/MapsService/V1/GeocodeResponse.xsd[/URL]">
<Result precision="address">
<Latitude>37.416402</Latitude>
<Longitude>-122.025078</Longitude>
<Address>701 1st Ave</Address>
<City>Sunnyvale</City>
<State>CA</State>
<Zip>94089-1019</Zip>
<Country>US</Country>
</Result>
</ResultSet>
<!--
ws02.search.re2.yahoo.com compressed/chunked Sun Jun 22 12:45:04 PDT 2008
-->
Der SQL-Server 2008 bietet einige Funktionen für Geo-Daten. Sowohl mit Flächen- als auch mit Kugel-Modell.
Ob man damit aus der PLZ auf die Entfernung schließen kann weiss ich allerdings nicht.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
bei map24.de gibt es auch eine api die man kostenlos nutzen darf (nicht kommerziell) oder auch gegen entgeld auch kommerziell.
hier stellt sich mir die frage ob du die entfernung in luftlinie oder in abzufahrender strecke mit einem pkw haben willst. das kann unter umständen recht größere unterschiede geben.
für ersteres benötigst du nur die reinen geo-daten.
für letzteres wirst du wohl eher auf dienste wie map24 zugreifen müssen, da das recht komplexe sachen sind.
ps: auf map24 sind auch beispiele zur nutzung in c# vorhanden.