Idee: Google Maps-ähnliche Kartenanwendung

Hallo!

Mir kam da so eine Idee, als ich OpenStreetMap bearbeitet habe: Warum gibt es eigentlich keine schöne Web-Kartenanwendung für den Desktop? Für’s Handy gibt es OsmAnd oder OrganicMaps, aber für’s Laptop?

Jaaa, und jetzt habe ich gezeichnet:


Bzw hier

So stelle ich mir das vor.
Alle benötigten Komponenten einmal aufgelistet:

  • Map im Hintergrund: Leaflet.js (oder Folium, wenn das Python sein soll)
  • Kartenstyle der Map: Da gibt’s kostenlose und CC-BY o.ä. lizensierte Styles von Mapbox
  • Suche: Photon (OSS von komoot) oder Nominatim
  • Bilder: image=*-Tag bzw. wikimedia-Images
  • Texte: Wikipedia oder notes=*
  • Avatar und Profilname oben rechts: OpenStreetMap-Account.
  • Routing (habe ich leider kein Bild zu): GraphHopper
  • Wetter: met.no. Oder, um deren Server zu entlasten bauen wir einen Server (in Rust zum Beispiel), der von der Api gleich ist, aber stündliches Caching betreibt

Ich habe mal eine (noch interne) EduGit-Gruppe gemacht.

Alle dieser Komponenten kann man selber hosten, muss man allerdings nicht. Wobei dass, jedenfalls für eine offene Instanz schon besser wäre.

Achso, bevor ich es vergesse: Ich kann nicht so wirklich JS, HTML und CSS, und würde das Projekt daher gerne mit anderen Leuten zusammen bauen und dabei mind. HTML und CSS lernen.

Was haltet ihr davon? Habt ihr Verbesserungsvorschläge? Noch mehr Ideen? Wer will mitbasteln?

  • Ich habe Interesste
  • Ich hab’ kein Interesse
0 Teilnehmer

Ergebnisse 29.08.2023

Umfang

(also das Basic-Projekt):

  • Map-Anzeige
  • Suche
  • POI-Anzeige

Wer macht mit

Mats, Darius, Pingu

Regelmäßiges Treffen

(online): Jede 2. Woche (B-Woche), Dienstag 15 Uhr, im BBB

Notwendige Vorkenntnisse

Basische Programmiererfahrung

Darf ich vorschlagen für das frontend Svelte zu nehmen? Von dem wie ich herumexperimentiert ist es ziemlich gut.

1 „Gefällt mir“

Frage: Welche Vor- bzw. Nachteile hat das denn gegenüber einfachem JavaScript?

Ein UI-Framwork wie Svelte macht es leichter Events zu handlen als einfaches JavaScript, zum Beispiel schreibt man bei Svelte Komponenten, die dann zu CSS, HTML, und Javascript kompilieren. Das hat vorteile, dass sowas geht:

<script lang="ts">
    let name = "Thing";
</script>

<p>{name}</p>

oder

<script lang="ts">
    function onClick() {
        alert("hello");
    }
</script>
<button on:click={onClick}>Alerter</button>

Im normalen JavaScript bräuchte man dafür Event-Listener und sowas.

Achso ja gut. Das klingt natürlich deutlich angenehmer.

Wie wollen wir das denn aufgliedern?
Also entweder:

  1. Wir haben das Frontend, und in dem kann man dann halt die dahinter stehenden Server/Styles etc. aussuchen
    oder
  2. Man gibt die Server einfach vor
    oder
  3. Man baut eine API, auf die das Frontend dann drauf zugreift.
  • Vor- bzw. Nachteile zu 1:
    • Vorteile:
      • Man kann schon existierende Server nehmen und wird nicht geratelimited
      • Man kann alles komplett selber hosten, oder sich das selber zusammenstellen
    • Nachteile:
      • keine. Fallen irgendwem welche ein?
  • Vor- bzw. Nachteile zu 2:
    • Vorteile:
      • Man kann einfach schon existierende Server nehmen
      • Wenn es eine Instanz gibt, kann man sicher sein, nicht geratelimited zu werden
    • Nachteile:
      • Für den Nutzer nicht ersichtlich, wohin die Daten gehen
      • Nicht selber auswählbar, wer Daten verarbeitet
      • Wenn Performance der im vorhinein ausgewählten Server schlecht, dann ist alles langsam
  • Vor- bzw. Nachteile zu 3:
    • Vorteile:
      • Man kann basierend auf diesem API-Server noch weitere Sachen bauen
    • Nachteile:
      • Ratelimiting
      • Selbe Probleme wie bei 2

Nach meiner Einschätzung wäre Option 1 die beste.
Was denkt ihr?

Ich denke der 1. Vorschlag wäre am besten, da man da einfach nur das Front-End bauen muss und dann kann der Nutzer entscheiden welche Data-Provider er verwenden möchte.

1 „Gefällt mir“

@codecraft Und ich haben mal ein bisschen das Design überarbeitet…

Und wenn man dann anderen Leuten Links schickt, laufen deren Browser los und schicken ganz viele Daten an ganz viele fremde Server…

Öh jaaaaa…

Wie würdest du das denn tun?

Ich kenne die Desktop App https://marble.kde.org/

Vielleicht zur Orientierung geeignet?

Oder könnte Marble um eure Ideen erweitert werden?

Na eure Variante 3 von oben.

Aber dann auch alle Services selber hosten?
Oder meinst du alle Services selber hosten anstatt eine API, die dann Proxy/Cacher/was auch immer spielt?

Naja, also das ist halt eine lokale Karte. Aber in welcher Sprache ist das denn gebaut? C?
Ich glaube jedenfalls, dass sich das nicht so gut eignet.

Das ist in C++ geschrieben.

Weil noch Vorbereitung-

Ich mach’ hier mal ein Meeting hin in den nächsten Tagen.

Abstimmung

Das hier ist die Abstimmung für das Initiale und erste Meeting zu diesem Projekt.
Es findet Online statt, und zwar hier.
Wenn du Interesse hast, dann stimm’ einfach ab.
Das Meeting sollte so ungefähr 1 Stunde dauern.

Agenda:

  • Erste Vorstellung vom Projekt (von mir)
  • Projekt planen
    • Umfang
    • Wer macht mit?
    • Regelmäßige Treffen (online)?
  • (Vorkentnisse)
  • Weiteres (TODO)

Vorkentnisse für dieses Meeting

Jetzt für dieses Meeting braucht man eigentlich keine Vorkentnisse so wirklich. Lust mitzumachen wäre gut :wink: , aber jetzt erstmal keine weiteren. Was man dann braucht würde ich dann einfach im Meeting klären

Abstimmung: Erstes Meeting und Besprechung zum Projekt
  • Mo, 28.08.2023, 14:30 Uhr
  • Mo, 28.08.2023, 16:30 Uhr
  • Di, 29.08.2023, 14:00 Uhr
  • Mi, 30.08.2023, 17:30 Uhr
  • Fr, 01.09.2023, 14:30 Uhr
  • Fr, 01.09.2023, 16:30 Uhr
  • Sa, 02.09.2023, 16:45 Uhr
0 Teilnehmer

Das Meeting findet dann morgen um 14:00 Uhr statt.