mapbox / mapbox/mapbox-java

Low level GeoJson implementation

Offen
#710 13 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

GeoJson
Vorherrschende Sprache
Java
Sterne
438
Forks
117
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

This is a request for either a rewrite or alternative implementation of the current GeoJson module found [here](https://github.com/mapbox/mapbox-java/blob/master/services-geojson). We need a high performance implementation that has a minimal memory footprint. The reasoning behind that is that geojson models should be scalable (eg. downstream we query the map for 1000 of features, the path currently taken to create those and the intermediate objects created for doing that isn't optimal atm).

Couple of thoughts to improve this:
- use primitive instead of objects where possible
- no need for AutoValue, implementation is based on a specification that doesn't change (often)
- if geojson models are immutable, use arrays instead of List
- limit method invocations & don't allocate memory if you can avoid it
- don't over abstract concepts if they can be expressed more simple

More information on performance tips [here](https://developer.android.com/training/articles/perf-tips.html)
RFC of GeoJSON can be found [here](https://tools.ietf.org/html/rfc7946).

cc @mapbox/android

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Überprüfung der aktuellen Implementierung in services-geojson und vergleiche anschließend deren Modellstruktur mit RFC 7946 und den verlinkten Android-Leistungstipps. Lege fest, wie die Neufassung oder Alternative Speicherbedarf und Performance für ungefähr 1.000 Features messen wird; abgeschlossen ist die Aufgabe, wenn die GeoJSON-Modelle die angeforderten Skalierbarkeitsziele ohne unnötige Allokationen oder Abstraktionen erreichen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
data
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.