Mehr

Wie erstelle ich einen bearbeitbaren 3D-Stadtplan basierend auf OSM?

Wie erstelle ich einen bearbeitbaren 3D-Stadtplan basierend auf OSM?


Mit F4 map können Sie 3D-Bilder basierend auf OSM-Karten erstellen.

Ich möchte eine Anwendung erstellen, mit der Sie eine solche 3D-Karte bearbeiten können, d. e. Gebäude und Straßen entfernen und hinzufügen (ohne die zugrunde liegenden OSM-Daten zu ändern).

Wie kann ich das machen?

Mein erster Gedanke war zu

  1. Nehmen Sie den F4-Kartenclient,
  2. modifizieren Sie es so, dass es die Daten nicht von OSM, sondern von meinem Webservice erhält.

Wenn der Benutzer dann ein Gebäude im Browser entfernt, sendet der clientseitige Code eine Anfrage an einen Webdienst und das Gebäude wird aus der Datenbank entfernt. Gleiches gilt für das Hinzufügen von Gebäuden, Straßen und allem anderen.

Ich frage mich, ob es bessere Ansätze gibt.

Wenn Code vorhanden ist, den ich für meine Zwecke wiederverwenden kann, teilen Sie mir dies bitte mit.

Aktualisierung 1:

  • Es scheint, dass der Quellcode der F4-Karte nicht öffentlich verfügbar ist.
  • CesiumJS scheint in der Lage zu sein, Karten mit Gebäuden zu rendern.

Ihre Frage ist ziemlich komplex und wie andere sagen, ist es sehr empfehlenswert, sich vorher die 3D OSM Wikipages anzusehen.

Um Ihr Problem aufzuteilen, benötigen Sie:

  • JS-Webkarte mit 3D-Fähigkeiten für die Clientseite
  • OSM 3D-Prozessor auf der Serverseite
  • Benutzerdefinierte OSM-API für Ihre benutzerdefinierten CRUD-Operationen für Objekte
  • OSM-Datenbank

Wie Sie sehen, wird es komplex. Vielleicht möchten Sie mit einer statischen isometrischen 3D-Karte wie OSM2World usw. beginnen und auf On-Click-Ereignisse reagieren. Sie können also mit der Codierung der API beginnen. Wenn dies funktioniert, starten Sie die Komponenten für Live-3D-Ansichten.

PS: Denken Sie daran, dass Ihre DB und die offizielle DB nicht mehr synchron sind, wenn Sie Objekte auf die harte Tour löschen.

Empfehlung: Nehmen Sie keine DB-Änderungen vor, ohne Ihr Projekt vorher zu besprechen!