Es kann losgehen!

Bevor Sie mit der Entwicklung beginnen, lesen Sie bitte unsere Entwicklerdokumentation.

Die Google Maps Android API aktivieren

Zum Einstieg führen wir Sie durch die Google Developers Console, wo Sie vorab Folgendes tun müssen:

  1. Ein Projekt erstellen oder auswählen
  2. Die Google Maps Android API aktivieren
  3. Zugehörige Schlüssel erstellen
Weiter

Google Maps Android GeoJSON-Hilfsprogramm

  1. Einführung
  2. GeoJsonLayer zu Ihrer Karte hinzufügen
  3. GeoJsonLayer entfernen
  4. GeoJsonFeature hinzufügen und entfernen
  5. GeoJsonFeatures und ihre Eigenschaften aufrufen
  6. GeoJsonLayer und GeoJsonFeatures formatieren
  7. Demo-App anzeigen

Einführung

GeoJSON ist eine Erweiterung des JSON-Datenformats und repräsentiert geografische Daten. Mit diesem Hilfsprogramm können Sie Funktionen im GeoJSON-Format speichern und als Ebene, die über eine Karte gelegt wird, darstellen. Um Ihre GeoJSON-Daten zur Karte hinzuzufügen bzw. daraus zu entfernen, rufen Sie addLayer() bzw. clearLayer() auf. Entsprechend können Sie auch einzelne Funktionen hinzufügen bzw. entfernen, indem Sie addFeature() bzw. removeFeature() aufrufen und ein Objekt GeoJsonFeature übergeben. Wenn Sie auf diese Funktionen zugreifen möchten, können Sie getFeatures() aufrufen, um ein Iterable aller Objekte GeoJsonFeature zu erhalten, die zur Ebene hinzugefügt wurden.

Sie können auch Standardformate definieren, die vor dem Hinzufügen zur Ebene auf die Funktionen angewandt werden. Rufen Sie dazu getDefaultPointStyle(), getDefaultLineStringStyle() oder getDefaultPolygonStyle() auf, und definieren Sie die Formatoptionen für die einzelnen Funktionen. Alternativ können Sie das Format für ein einzelnes Objekt GeoJsonFeature definieren, indem Sie setPointStyle(), setLineStringStyle() oder setPolygonStyle() für die Funktion aufrufen und das jeweilige Formatobjekt übergeben.

GeoJsonLayer zu Ihrer Karte hinzufügen

Um eine GeoJson-Ebene zur Karte hinzuzufügen, erstellen Sie zunächst eine Instanz der Klasse „GeoJsonLayer“. Es gibt zwei Möglichkeiten, um die Klasse „GeoJsonLayer“ zu instanziieren.

Für einen Import aus JSONObject benötigen Sie Folgendes:

  • Ein Objekt GoogleMap, in dem die Ebene wiedergegeben werden soll
  • JSONObject mit den GeoJSON-Daten, die zur Ebene hinzugefügt werden sollen
GeoJsonLayer layer = new GeoJsonLayer(getMap(), geoJsonData);

Für einen Import aus einer GeoJSON-Datei benötigen Sie Folgendes:

  • Ein Objekt GoogleMap, in dem die Ebene wiedergegeben werden soll
  • Eine lokale Ressourcendatei mit den GeoJSON-Daten.
  • Ein Objekt Context, das zum Öffnen einer lokalen Ressourcendatei erforderlich ist
GeoJsonLayer layer = new GeoJsonLayer(getMap(), R.raw.geoJsonFile,
getApplicationContext());

Nachdem Sie GeoJsonLayer erstellt haben, rufen Sie addLayer() auf, um die importierten Daten zur Karte hinzuzufügen.

layer.addLayer();

GeoJsonLayer entfernen

Angenommen, Sie haben diese Ebene hinzugefügt:

GeoJsonLayer layer = new GeoJsonLayer(getMap(), geoJsonData);

Um GeoJsonLayer zu entfernen, rufen Sie clearLayer() auf.

layer.clearLayer();

GeoJsonFeature hinzufügen und entfernen

Funktionen in GeoJSON ist der Typ „feature“ zugeordnet. Eine Funktion enthält eine Geometry, ein Eigenschaftsmember und verfügt optional über einen Begrenzungsrahmen oder eine ID.

Sie können Objekte vom Typ GeoJsonFeature einzeln erstellen und dann zu GeoJsonLayer hinzufügen.

Angenommen, Sie haben eine Funktion erstellt, die einen Punkt an 0,0 mit einem Eintrag in den Eigenschaften und ohne Begrenzungsrahmen enthält.

GeoJsonPoint point = new Point(new LatLng(0, 0));
HashMap<String, String> properties = new HashMap<String, String>();
properties.put(“Ocean”, “South Atlantic”);
GeoJsonFeature pointFeature = new GeoJsonFeature(point, “Origin”, properties, null);

Um die Funktion zur Ebene hinzuzufügen, rufen Sie addFeature() auf, und übergeben Sie die hinzuzufügende Funktion.

layer.addFeature(pointFeature);

Um eine Funktion nach ihrem Hinzufügen zur Ebene zu entfernen, rufen Sie removeFeature() auf, und übergeben Sie die zu entfernende Funktion.

layer.removeFeature(pointFeature);

GeoJsonFeatures und ihre Eigenschaften aufrufen

Um GeoJsonFeatures aufzurufen, die zu Ihrer Ebene hinzugefügt wurden, können Sie für die von Ihnen erstellte GeoJsonLayer die Methode getFeatures() aufrufen. Daraufhin wird ein Iterable von GeoJsonFeatures zurückgegeben, das Sie mithilfe einer For-Each-Loop aufrufen können, wie nachfolgend dargestellt.

for (GeoJsonFeature feature : layer.getFeatures()) {
  // do something to the feature
}

Verwenden Sie die Methoden hasProperty() und getProperty() in Verbindung mit der Methode getFeatures(). Auf diese Weise können Sie überprüfen, ob für die einzelnen hinterlegten Funktionen bestimmte Eigenschaften vorhanden sind, und können diese aufrufen, sofern vorhanden.

GeoJsonPoint point = new Point(new LatLng(0, 0));
HashMap<String, String> properties = new HashMap<String, String>();
properties.put(“Ocean”, “South Atlantic”);
GeoJsonFeature pointFeature = new GeoJsonFeature(point, “Origin”, properties, null);
for (GeoJsonFeature feature : layer.getFeatures()) {
  if (feature.hasProperty(“Ocean”)) {
    String oceanProperty = feature.getProperty(“Ocean”);
  }
}

GeoJsonLayer und GeoJsonFeatures formatieren

Sie können Standardformate für eine GeoJsonLayer definieren oder einzelne Funktionen der Ebene formatieren.

Standardformate

In einer GeoJsonLayer können Sie Standardformate für beliebige Punkte, Linienzeichenfolgen und Polygone definieren, die zur Ebene zugefügt wurden. Standardformate werden nur angewandt, wenn zur Funktion keine Formatvorlagensätze für eine ihrer Geometrien vorhanden ist. Jede Änderung, die Sie an der Standardformatierung vornehmen, wirkt sich auf alle Funktionen aus, für die diese Standardformatierung verwendet werden.

Nachfolgend sind die einzelnen Schritte aufgeführt, die zum Anwenden einer Standardformatierung erforderlich sind:

  1. Rufen Sie das entsprechende Standardformatobjekt ab, entweder GeoJsonPointStyle, GeoJsonLineStringStyle oder GeoJsonPolygonStyle.
  2. Wenden Sie die gewünschten Optionen auf das Format an.

Im nachfolgenden Codebeispiel wird gezeigt, wie Sie das Standardpunktformat so ändern, dass die Punkte mit einem Titel und Ausschnitt gezogen werden können.

GeoJsonPointStyle pointStyle = layer.getDefaultPointStyle();
pointStyle.setDraggable(true);
pointStyle.setTitle(“Hello, World!”);
pointStyle.setSnippet(“I am a draggable marker”);

Spezielle Formate für GeoJsonFeature

Alternativ können Sie einzelne Funktionen in der Ebene formatieren. Nachfolgend sind die einzelnen Schritte aufgeführt, die zum Anwenden einer Standardformatierung auf GeoJsonFeature erforderlich sind:

  1. Erstellen Sie das entsprechende Formatobjekt, entweder GeoJsonPointStyle, GeoJsonLineStringStyle oder GeoJsonPolygonStyle.
  2. Wenden Sie die gewünschten Optionen auf das Format an.
  3. Übergeben Sie das Formatobjekt an die entsprechende Methode in GeoJsonFeature, also entweder setPointStyle(), setLineStringStyle() oder setPolygonStyle()

Auf diese Weise passen Sie beispielsweise das LineString-Format für GeoJsonFeature so an, dass es die Farbe Rot erhält.

// Create a new feature containing a linestring
ArrayList<LatLng> lineStringArray = new ArrayList<LatLng>();
lineStringArray.add(new LatLng(0, 0));
lineStringArray.add(new LatLng(50, 50));
GeoJsonLineString lineString = new GeoJsonLineString(lineStringArray);
GeoJsonFeature lineStringFeature = new GeoJsonFeature(lineString, null, null, null);

// Set the color of the linestring to red
GeoJsonLineStringStyle lineStringStyle = new GeoJsonLineStringStyle();
lineStringStyle.setColor(Color.RED);

// Set the style of the feature
lineStringFeature.setLineStringStyle(lineStringStyle);

Demo-App anzeigen

Ein Beispiel zum Importieren einer GeoJSON-Datei aus einer URL und zum Erstellen einer Ebene mit ihrer Hilfe finden Sie in der Demo-App, die mit der Hilfsprogrammbibliothek ausgeliefert wird, unter GeoJsonDemoActivity. Im Einrichtungsleitfaden erhalten Sie Informationen zum Ausführen der Demo-App.

Feedback geben zu...

Google Maps Android API
Google Maps Android API