Vous êtes prêt !

Pour passer à l'étape de développement, accédez à notre documentation pour les développeurs.

Activer Google Maps Android API

Pour commencer, nous allons vous guider à travers la console Google Developers et effectuer deux ou trois petites choses :

  1. Créer ou choisir un projet
  2. Activer Google Maps Android API
  3. Créer les clés appropriées
Continuer

Utilitaire GeoJSON Google Maps Android

  1. Introduction
  2. Ajouter un calque GeoJsonLayer à votre carte
  3. Supprimer le calque GeoJsonLayer
  4. Ajouter et supprimer un objet GeoJsonFeature
  5. Accéder aux objets GeoJsonFeatures et à leurs propriétés
  6. Styliser les objets GeoJsonLayer et GeoJsonFeatures
  7. Voir l'application de démo

Introduction

GeoJSON est une extension du format de données JSON et représente des données géographiques. Cet utilitaire permet de stocker des caractéristiques géographiques au format GeoJSON et en effectuer le rendu sous forme de calque superposé à la carte. Pour ajouter et supprimer vos données GeoJSON de la carte, appelez respectivement addLayer() et clearLayer(). De même, vous pouvez ajouter et supprimer des caractéristiques individuelles en appelant addFeature() et removeFeature() et en transmettant un objet GeoJsonFeature. Pour accéder aux caractéristiques, vous pouvez appeler getFeatures() pour obtenir un itérable de tous les objets GeoJsonFeature qui ont été ajoutés au calque.

Vous pouvez également définir des styles par défaut à appliquer aux caractéristiques avant qu'elles soient ajoutées à la carte, en appelant getDefaultPointStyle(), getDefaultLineStringStyle() ou getDefaultPolygonStyle() et en définissant les options de style pour chacune. De même, vous pouvez définir le style d'une caractéristique GeoJsonFeature individuelle en appelant setPointStyle(), setLineStringStyle() ou setPolygonStyle() sur la caractéristique et en transmettant l'objet de style approprié.

Ajouter un calque GeoJsonLayer à votre carte

Pour ajouter un calque GeoJson à votre carte, vous devez d'abord créer une instance de la classe GeoJsonLayer. Il existe deux manières d'instancier GeoJsonLayer.

Pour l'importer à partir d'un JSONObject, vous avez besoin des éléments suivants :

  • Objet GoogleMap où le rendu du calque doit être effectué
  • JSONObject contenant les données GeoJSON à ajouter au calque
GeoJsonLayer layer = new GeoJsonLayer(getMap(), geoJsonData);

Pour l'importer à partir d'un fichier GeoJSON local, vous avez besoin des éléments suivants :

  • Objet GoogleMap où le rendu du calque doit être effectué
  • Fichier de ressources local contenant les données GeoJSON
  • Objet Context, qui est nécessaire pour ouvrir un fichier de ressources local
GeoJsonLayer layer = new GeoJsonLayer(getMap(), R.raw.geoJsonFile,
getApplicationContext());

Après avoir créé le calque GeoJsonLayer, appelez addLayer() pour ajouter les données importées à la carte :

layer.addLayer();

Supprimer le calque GeoJsonLayer

Supposons que vous avez ajouté ce calque

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

Pour supprimer GeoJsonLayer, appelez clearLayer()

layer.clearLayer();

Ajouter et supprimer un objet GeoJsonFeature

Au format GeoJSON, une caractéristique a le type « feature ». Elle contient une géométrie, une propriété et éventuellement une zone de délimitation ou un identifiant.

Vous pouvez créer des objets GeoJsonFeature individuellement et les ajouter au calque GeoJsonLayer.

Imaginons que vous avez créé une caractéristique contenant un point à 0, 0 avec une entrée dans ses propriétés et pas de zone de délimitation.

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);

Pour ajouter la caractéristique au calque, appelez addFeature() et transmettez la caractéristique à ajouter.

layer.addFeature(pointFeature);

Pour supprimer une caractéristique après l'avoir ajoutée au calque, appelez removeFeature() et transmettez la caractéristique à supprimer.

layer.removeFeature(pointFeature);

Accéder aux objets GeoJsonFeatures et à leurs propriétés

Pour accéder à tous les GeoJsonFeatures qui ont été ajoutés au calque, vous pouvez appeler getFeatures() sur le calque GeoJsonLayer que vous avez créé. Cela renverra un itérable de GeoJsonFeatures auquel vous pouvez accéder à l'aide d'une boucle for-each comme présenté ci-dessous.

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

Utilisez les méthodes hasProperty() et getProperty() conjointement avec la méthode getFeatures() pour vérifier si chaque caractéristique stockée possède une propriété particulière et pour y accéder le cas échéant.

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”);
  }
}

Styliser les objets GeoJsonLayer et GeoJsonFeatures

Vous pouvez définir des styles par défaut pour un calque GeoJsonLayer ou styliser les caractéristiques individuelles du calque.

Styles par défaut

Dans un calque GeoJsonLayer, vous pouvez définir des styles par défaut pour tous les points, lignes et polygones ajoutés au calque. Les styles par défaut ne sont appliqués que si la caractéristique n'a pas de style défini pour l'un de ces éléments géométriques. Toutes les modifications apportées au style par défaut s'appliqueront également à toutes les caractéristiques qui utilisent le style par défaut.

Pour appliquer un style par défaut, procédez comme suit :

  1. Récupérez l'objet de style par défaut approprié, à savoir GeoJsonPointStyle, GeoJsonLineStringStyle ou GeoJsonPolygonStyle.
  2. Appliquez les options souhaitées sur le style.

Par exemple, l'échantillon de code suivant montre comment modifier le style de point par défaut qui permettra de rendre les points déplaçables avec un titre et des informations.

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

Styles spécifiques d'un objet GeoJsonFeature

Vous pouvez également styliser des caractéristiques individuelles dans le calque. Pour ajouter un style à un objet GeoJsonFeature, procédez comme suit :

  1. Créez l'objet de style approprié, à savoir GeoJsonPointStyle, GeoJsonLineStringStyle ou GeoJsonPolygonStyle
  2. Appliquez les options souhaitées sur le style
  3. Passez l'objet de style à la méthode adéquate sur la l'objet GeoJsonFeature qui sera soit setPointStyle(), soit setLineStringStyle(), soit setPolygonStyle()

Par exemple, voici comment personnaliser le style de ligne d'un objet GeoJsonFeature afin que sa couleur soit rouge.

// 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);

Voir l'application de démo

Pour consulter un exemple d'importation de fichier GeoJSON à partir d'une URL et de création de calque à partir de ce fichier, voir l'activité GeoJsonDemoActivity dans l'application de démo livrée avec la bibliothèque d'utilitaires. Le guide de configuration vous explique comment exécuter l'application de démo.

Envoyer des commentaires concernant…

Google Maps Android API
Google Maps Android API
Besoin d'aide ? Consultez notre page d'assistance.