Ende September fand in Kasan der größte Hackathon der Welt statt. Diese Veranstaltung wurde entsprechend der Teilnehmerzahl in das Guinness-Buch der Rekorde aufgenommen.
Für diese 48 Stunden wurden wir beauftragt:
Entwicklung eines Prototyps einer mobilen Anwendung, mit der ein Passagier die Lieferung von Lebensmitteln in Restaurants in Städten entlang der Bahnstrecke bestellen kann.
Text
Natürlich haben wir uns während der gesamten Veranstaltung mit der Lösung heterogener Teilaufgaben zu unserem Thema beschäftigt. Wir haben nicht alle 48 Stunden damit verbracht, die HERE-API zu lernen und die oben genannten drei Abfragen zu schreiben.
In diesem Artikel möchte ich genau die Erfahrungen mit der Verwendung der HERE-API teilen, die während dieser schlaflosen 48 Stunden gesammelt wurden, genauer gesagt, als Junior-Entwickler von Python und verteilten Systemen im Netzwerk, um mit anderen Systemen im Netzwerk zu interagieren. Der Artikel gibt nicht vor, die gesamte HERE-API-Dokumentation zu übersetzen, sondern beschreibt nur die praktische Anwendung bei der Lösung unserer Probleme.
Einführung
Um die termingerechte Lieferung von Aufträgen und deren Ausführung zu optimieren, muss der Kurier genau zum Zeitpunkt des Eintreffens des Zuges am Bahnhof am Bahnsteig eintreffen. In diesem Zusammenhang sollte jeder Kurier die Mindestzeit kennen, die für die Lieferung der Bestellung erforderlich ist. Um dieses Problem zu lösen, musste die Mindestfahrzeit zwischen zwei Punkten (vom Restaurant zum Bahnhof) berechnet werden. Der Weg wurde im Dorf berechnet, in diesem Zusammenhang wurde beschlossen, verschiedene Optionen in Betracht zu ziehen, nämlich die Nutzung öffentlicher Verkehrsmittel, eines Privatwagens und Ihrer Füße zum Gehen.
Die Analyse der öffentlichen APIs ergab, dass die folgenden REST-Anforderungen zur Lösung des Problems am besten geeignet sind:
Die Verwendung der API beginnt mit der Registrierung im Entwicklerbereich der offiziellen Website, um APP-ID- und APP-CODE-Schlüssel zu generieren und zu empfangen. Mit dem kostenlosen API-Schlüssel können Sie bis zu 250.000 Anfragen pro Monat ausführen. Glauben Sie mir, dies deckt alle Bedürfnisse für einen Hackathon ab.
Die Statistiken über die Verwendung der HERE-API durch unsere Anwendung für 48 Stunden zeigten die folgenden Zahlen:

Übe
Jede Anfrage enthält die folgenden Felder:
deplocation = A
Reisezeit mit öffentlichen Verkehrsmitteln ermitteln
url = f"https://transit.api.here.com/v3/route.json" query = { 'dep': deplocation, 'arr': arrlocation, 'time': datetime.now().strftime('%Y-%m-%dT%H:%M:%S'),
Ich möchte darauf hinweisen, dass in dieser Anfrage die Zeit mit ISO 8601 angegeben wird. Die Funktion zum Konvertieren der empfangenen Zeitdauer in Sekunden iso8601toSec wurde implementiert.
Reisezeit mit Privatfahrzeugen ermitteln
url = f"https://route.api.here.com/routing/7.2/calculateroute.json" query = { 'waypoint0': deplocation, 'waypoint1': arrlocation, 'mode': 'fastest;car;traffic:enabled',
Es gibt keine Probleme mit dieser Anfrage im Laufe der Zeit, sie kehrt in Sekunden zurück.
Reisezeit mit eigenen Beinen finden (Gehen)
url = f"https://route.api.here.com/routing/7.2/calculateroute.json" query = { 'waypoint0': deplocation, 'waypoint1': arrlocation, 'mode': 'fastest;pedestrian',
Bei dieser Anforderung gibt es wie im vorherigen Beispiel keine Probleme mit der Zeit, sie wird in Sekunden zurückgegeben.
Schlussfolgerungen
Basierend auf diesen Anfragen erhielten wir dreimal die erforderliche Zeit, um von Punkt A nach Punkt B zu gelangen. Nachdem wir die Mindestzeit und die Art der Bewegung von ihnen berechnet hatten, bestimmten wir, wie lange es dauerte, bis wir zum angegebenen Zeitpunkt Punkt B erreichten.