[Scriptwunsch] Fahrzeitberechnung mit Marker auf Karte

  • Moin,



    Mir ist gerade ein Skript eingefallen, dass ich selber so nicht umsetzen kann.

    Ist es möglich ein Skript zu programmieren, dass man einen Marker auf die Karte setzt und man danach die Entfernung in Minuten zur einer Wache angezeigt bekommt?

    Das wäre interessant zu wissen, dann kann ich meine Wachen in den richtigen Abständen bauen, ohne dass meine Fahrzeuge 25Minuten brauchen.

  • Technisch ja, aber das bedeutet das das Skript jedes mal eine Anfrage an den Server wirft.


    Community-Team Leitstellenspiel Dürfte man den OSRM-Service mit beispielsweise 1x/10 Sekunden unter Beschlag nehmen?

    Ein Vakuum, geschaffen durch fehlende Kommunikation,

    füllt sich in kürzester Zeit mit falscher Darstellung, Gerüchten, Geschwätz und Gift. - Cyril Northcote Parkinson


    Der beste Verband in Aachen und Umgebung: leitstellenspiel.de/alliances/1100



    Schraube manchmal am LSSM V4 rum.

  • Wenn es hier um den /viaroute-Endpunkt geht (osrm.missionchief.com/viaroute), können wir da sicherlich etwas Nutzung gestatten. Dabei würde ich folgende Einschränkungen sehen:


    - idealerweise mit einem HTTP-Header "X-Thirdparty-Script: <Name des Scripts>" kennzeichnen; das ermöglicht es uns im Zweifelsfall schnell zu handeln und auch im Dialog zu sein anstatt nur zu Sperren (das klappt leider nicht immer, wäre aber vorteilhaft)

    - nicht mehr als 1 pro 5 Sekunden pro Client abzufragen

    - die Abfrage etwas intelligent gestalten, indem man erst einmal über die Vogelfluglinie abschätzt, welche Wachen überhaupt in Betracht kommen (so dass man möglichst von den dichtesten Wachen abfragen startet)


    Solange ihr da bei solchen vernünftigen Limits bleibt, ist es okay, Requests an diesen Endpunkt zu schicken.


    Grüße

    Dennis vom Entwicklerteam

  • Calli01

    Hat das Thema geschlossen
  • Calli01

    Hat den Titel des Themas von „Scriptwunsch“ zu „[Scriptwunsch] Fahrzeitberechnung mit Marker auf Karte“ geändert.
  • LSS-Team Kann es sein das der OSRM Server keine Options akzeptiert/bzw. keine Custom Header nach Access-Control-Allow-Headers akzeptiert?
    Wenn ich versuche das ganze mit dem Header zu machen kommt folgendes:

    Code
    Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://osrm.missionchief.com/viaroute?loc=52.84454190217712,6.112513525413306&loc=52.77704266768097,6.116766929626465&compression=false. (Reason: header ‘x-thirdparty-script’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response).
    Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://osrm.missionchief.com/viaroute?loc=52.84454190217712,6.112513525413306&loc=52.77704266768097,6.116766929626465&compression=false. (Reason: CORS request did not succeed). Status code: (null).
    Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.

    Wenn ich den Custom Header weglasse geht der Request ohne Probleme durch.


    Betroffener Quelltext:

    JavaScript: Snippet
    await fetch(`https://osrm.missionchief.com/viaroute?loc=${buildingLatLng.lat},${buildingLatLng.lng}&loc=${markerLatLng.lat},${markerLatLng.lng}&compression=false`,
    {
    method: 'GET',
    headers: {
    'X-Thirdparty-Script': 'Crazycake Distance to Marker'
    }
    }).then(...)

    Ein Vakuum, geschaffen durch fehlende Kommunikation,

    füllt sich in kürzester Zeit mit falscher Darstellung, Gerüchten, Geschwätz und Gift. - Cyril Northcote Parkinson


    Der beste Verband in Aachen und Umgebung: leitstellenspiel.de/alliances/1100



    Schraube manchmal am LSSM V4 rum.

  • Hmm, leider ist der alte Geoservice da relativ strikt, in der Tat ist das nicht erlaubt. Für den Moment hast du dann die Freigabe, das erstmal ohne zusätzlichen Header zu machen (leider erlaubt der Service auch keine "unnützen" Parameter, die man zum taggen nehmen könnte). Wir planen aktuell in den nächsten Monaten sowieso auf eine neue Version von OSRM umzusteigen, die die API ändert (OSRM-routed v5), so dass dann URL und Antwortformat eh etwas anders aussehen. In dem Zuge würden wir das nochmal neu und korrekt beleuchten.


    Grüße

    Dennis vom Entwicklerteam

  • Na dann :D


    Hier das Skript: https://github.com/Cr4zyc4k3/L…istance_to_marker.user.js


    Kurz Erklärung: Nach Installation gibt es in der Karte unten rechts einen Button mit einer Straße drin. Wenn man dort drauf klickt öffnet sich das Menü. Dort wählt man die Wache aus und verschiebt auf der Karte den Marker.

    CAVE: Der Marker wird immer in Kartenmitte gesetzt, was auch gleichzeitig der Ort der Haupt-Leitstelle ist. Dementsprechend ist der manchmal etwas "versteckt".

    Wenn der Button "Route berechnen" grün wird: Drücken und die Routendauer/Distanz wird berechnet. Diese wird auch auf der Karte angezeigt.


    Falls der Button blau ist ist das oben angesprochene Timeout von 5 Sekunden. In dem Fall einfach ein bisschen warten ;)


    Zum schließen einfach nochmal auf das Straßensymbol drücken.

    Ein Vakuum, geschaffen durch fehlende Kommunikation,

    füllt sich in kürzester Zeit mit falscher Darstellung, Gerüchten, Geschwätz und Gift. - Cyril Northcote Parkinson


    Der beste Verband in Aachen und Umgebung: leitstellenspiel.de/alliances/1100



    Schraube manchmal am LSSM V4 rum.

    Einmal editiert, zuletzt von Crazycake ()