Frage: Distanz berechnen

Hi zusammen,

ich bin komplett neu in der JOSM Welt und war schon froh, dass ich JOSM gefunden habe und (ich glaube zumindest) installiert habe.
Ich bin grundsätzlich eher eine Niete im programmieren, deswegen hoffe ich, dass die Antworten, die ich bekomme nicht im höchsten Fachchinesisch sind sondern schön anschaulich :smiley: Danke schon mal im Voraus!

Nun zu meiner Frage:
Ich möchte gerne zwei Parameter (Orte) der Anfrage mitgeben, und möchte als Ergebnis die Distanz (nicht Luftlinie, sondern Strecke mit Auto) zwischen dein Beiden Orten erhalten.
Kurzer Hintergrund:
Ich habe eine Liste mit Personen, die haben einen Namen und einen Wohnort. Dann habe ich eine Liste von Orten, die besucht werden sollen.
Alle Personen reisen gleichzeitig, aber natürlich will keiner in seinen eigenen Ort fahren. Als Ergebnis erhoffe ich mir eine Liste, die sagt Person A aus Ort A fährt nach Ort F, Person B aus Ort B fährt nach Ort A usw. Die gefahrene Strecke aller Personen zusammen sollte natürlich so klein wie möglich sein.

Kann mir hierbei jemand helfen? Ich bin komplett aufgeschmissen :S

Vielen vielen lieben Dank!

Beste Grüße
Euer verzweifelter CraxDE

Hi,

und erstmal herzlich willkommen im Forum (das vorhin anscheinend geklemmt hat).

Was hat deine Frage denn mit JOSM zu tun? JOSM ist ein OSM-Editor und ist nicht dafür gedacht/geeignet, irgendwelche “Anfragen” zu bearbeiten. Da bist du auf das falsche Pferd gesprungen.

Helfen kann ich dir bei deiner Aufgabe allerdings nicht. Es ist wohl eine Abwandlung der Travelling Salesman Problemes. Wer hat dir denn diese “komische” Aufgabe gegeben? Das kann doch nur ein Prof/Assi gewesen sein.

Es gibt natürlich Lösungsmöglichkeiten aber die hängen stark von deinem Wissen, deinen Ressourcen und erst recht von deiner Zeit ab.

Gruss
walter

Die Bauteile dafür sind da: OSRM bietet z.B. eine Schnittstelle, die Koordinaten frisst und Routenanweisungen inklusive Entfernung zurückgibt (der Service heisst dort “viaroute”). Für einzelne Abfragen darf man die auch nehmen. Für grosse Abfragen mit vielen Punkten und Route von jedem zu jedem gibt es den Service “table”. Der kann auch ganze Tabellen nehmen und Fahrzeiten (nicht Strecken) zwischen allen Einträgen zurückgeben (“table”). Der Rest ist eine Optimierungsaufgabe….

Aber falls nicht jemand eine Seite aus dem Hut zaubert, die genau dieses Problem löst, sehe ich schwarz, falls “grundsätzlich eher eine Niete im programmieren” nicht nur Ausdruck deiner Bescheidenheit ist…

Grüße und willkommen im Forum,

Max

Es steht natürlich jedem frei, die OSRM Backend-Software auf eigenen Systemen zu installieren, allerdings wäre dieses Projekt selbst mir eine Hutnummer zu groß.

Gruss
walter

Hallo,

vielen vielen Dank für die rege Beteiligung :slight_smile:

Diese tolle Aufgabe habe ich mir gegeben :smiley: Vielleicht hilft es, wenn ich das Problem genauer beschreibe.

Am Ende soll eine Liste herauskommen, die mir eine Einteilung von Kampfrichtern zu Paarungen liefert.
Ich habe z.B. 20 Kampfrichter[KR] (Name, Wohnort, Verein) und eine Liste von Kämpfen (Heimverein gegen Gastverein) pro Samstag 15 Stück und das 20 Wochen lang.
Ich will meine KR nun so verteilen, dass ich alle Kämpfe besetze, ohne dass ein KR einen Kampf pfeift, in dem sein eigener Verein involviert ist. Außerdem müssen noch Verhinderungstermine beachtet werden, wenn ein KR an einem Samstag nicht kann.
Die Einteilung soll natürlich optimiert erfolgen, nicht dass ein KR aus dem Süden bis in den nördlichsten Zipfel fahren muss. Allerdings soll auch nicht ein KR 18 mal den selben Verein pfeifen. Die Strecke an jedem Samstag soll also so gering wie möglich gehalten werden, aber muss nicht zwingend immer die kürzeste sein.

Hilft diese Erklärung weiter? Ist da mit JOSM was möglich bzw. kann ich das mit Java generell irgendwie umsetzen?

Danke danke danke!

Gruß
Patrick

Das sieht schon etwas freundlicher aus.
Kein Handlungsreisender und keine Suche nach dem absoluten Optimum.
JOSM: no.

Die Entfernungen KR-Ort zu Spielort aus Routing (gibt ja schon Vorschläge) ermitteln, bei 20KR * 30 Vereine ist das “etwas Aufwand”.

Dann darüber klar werden, was Optimierungsziel ist. Eine niedere Gesamtsumme an km kann sehr ungleiche Verteilung auf die KR bedeuten.
Das dürfte Ärger geben. Da ist eher eine gleichmäßigere Verteilung der km auf alle KR bei nicht ganz so niedriger Gesamtsumme anzustreben.
Erst wenn das klar ist, kann man über einen Algorithmus nachdenken.

JOSM arbeitet an der Karte, nicht mit der Karte. Föllig valsches Werkzeug. Also hierfür. Aber wenn das Haus eines der Kampfrichter 10 Meter neben seiner Position kartiert ist oder davor noch eine Bushaltestelle, eine Sitzbank oder ein Briefkasten sind, die in der Karte noch fehlen, dann darfst du gern JOSM anwerfen und das nachtragen :slight_smile:

Was du brauchst, ist spezielle Software und dafür einen Programmierer. OSM liefert dir über Routingdienste die Fahrt-km der einzelnen Kampfrichter zu den Austragungsorten. Das ist ein Teil des Inputs der Software, die du brauchst. Alles andere kommt nicht von OSM (z.B. welcher KR für welche Vereine nicht in Betracht kommt sowie eventuelle Präferenzen – der eine will maximal vier Kämpfe pro Saison leiten, dem nächsten macht es nichts aus, zweimal die Woche weit zu fahren …).

Da muß zunächst mal ein Algorithmus erarbeitet werden, also ein mathematischer Lösungsweg. Zu deiner Frage: Ja, das läßt sich hinterher bestimmt mit Java umsetzen. Auch mit jeder anderen Programmiersprache. Aber trivial ist es nicht.

Ich kann mir aber vorstellen, daß sich damit schon andere Leute befaßt haben. Vielleicht mal bei großen Sportverbänden nachfragen, wie die ihre Unparteiischen nominieren?

–ks

Eventuell kann man das durch viele viele händische abfragen (oder den genannten osrm service table?) und excel lösen?

@CraxDE:

Nur zur Klarstellung: wir reden von Java - nicht von JavaScript. Java ist eine Programmiersprache wie C, C++.
Mit Compiler, Libraries, Runtime-Files und so.

So eine Anwendung mit JavaScript im Browser laufen zu lassen, wäre Wahnsinn. Und zwar wahnsinnig blöd.

Gruss
walter

ps: Wenn ich in einer Antwort an dich schreibe:

dann solltest du das schon verstehen und akzeptieren.

So wie ich das Problem sehe, kommt es doch nicht auf die genaue Fahrtstrecke an, sondern eher auf eine halbwegs zuverlässige Abschätzung der Entfernung.
Dazu reicht wahrscheinlich die Luftlinie völlig aus.

Eine gute Darstellung dazu ist hier zu finden:
http://www.kompf.de/gps/distcalc.html

Falls das zu ungenau scheint, und eine Exxceltabelle mit den geographischen Koordinaten zur Verfügung steht, kann ich die 600 Kombinationen per Script durch OSRM
schicken und daraus wieder eine Excel Tabelle basteln.