Premiers pas avec Google Maps pour Android: avancé

1. introduction

Bien que les fonctionnalités standard de Google Maps soient incroyablement utiles, vous voudrez parfois en faire un peu plus. Heureusement, Google a créé une bibliothèque open source contenant un ensemble d’utilitaires que les développeurs Android peuvent utiliser pour améliorer leurs applications avec des cartes améliorées.

Dans ce didacticiel, vous apprendrez à utiliser cette bibliothèque utilitaire pour ajouter des visualisations de carte de chaleur pour vos données, regrouper un grand nombre de marqueurs pour une visualisation plus facile et utiliser diverses méthodes utilitaires pour travailler avec la nature sphérique de la Terre ou dessiner des itinéraires sur les routes .

Les fichiers source de ce didacticiel se trouvent sur GitHub.

2. Installer

Dans le premier tutoriel de cette série, j’ai expliqué comment configurer un projet à l’aide de Google Developer Console et ajouter une clé API à votre manifeste. Pour ce didacticiel, vous devez obtenir une clé API et configurer votre projet avec un manifeste comme décrit ici.

Ensuite, ouvrez build.gradle et ajoutez deux nouvelles dépendances, une pour les services Play pour utiliser Google Maps et une autre pour la bibliothèque Google Maps Utils.

Je dois noter que la bibliothèque Google Maps Utils est techniquement toujours en version bêta, bien qu’elle soit disponible depuis deux ans. Une fois que vous avez importé ces bibliothèques et synchronisé le projet, vous devez mettre à jour le fichier de mise en page pour MainActivity.java afin qu’il utilise le fragment personnalisé illustré ci-dessous.

Ensuite, créez le UtilsListFragment classe utilisée ci-dessus afin d’afficher une liste simple d’éléments représentant les différentes parties de la bibliothèque que vous découvrirez dans ce didacticiel.

Chacune des chaînes est définie et placée dans un string-array pour l’uniformité.

Liste initiale des utilitaires utilisés dans ce didacticiel

Une fois votre liste disponible, vous devez créer BaseMapActivity.java, qui gère toutes les configurations communes liées à la carte pour chacune des activités d’exemple que vous allez créer. Ce Activity initialise un GoogleMap et effectue un zoom avant de la caméra sur une zone spécifiée. Dans ce cas, cette zone est la ville de Denver dans le Colorado, aux États-Unis. Tout dans cette classe devrait sembler familier à partir des deux derniers articles de cette série.

En relation :  Comment démarrer une maison intelligente pour 200 $

Maintenant que vous avez construit le projet initial, vous pouvez passer à la section suivante où vous allez créer un nouveau Activity pour chaque utilitaire que nous allons couvrir dans ce tutoriel.

3. Cartes thermiques

Les cartes thermiques sont un excellent moyen de représenter visuellement les concentrations de points de données sur une carte. La bibliothèque Google Maps Utils facilite leur ajout à une application. Pour commencer, créez un nouveau BaseMapActivity nommé HeatMapActivity et ajoutez-le à votre AndroidManifest.xml fichier. En haut de cette classe, déclarez un HeatmapTileProvider que nous utiliserons pour construire la superposition de carte.

Dans BaseMapActivity, une méthode nommée initMapSettings est appelé qui vous permet d’ajouter vos personnalisations à la carte. Pour ça Activity, vous devez remplacer cette méthode pour obtenir un ArrayList de LatLng objets qui sont ensuite utilisés pour générer le HeatmapTileProvider objet.

Le fournisseur dispose de diverses méthodes qui peuvent être utilisées pour modifier l’apparence de votre carte thermique, telles que les couleurs de dégradé, le rayon de chaque point et le poids de chaque point. Une fois votre fournisseur créé, vous pouvez créer la carte thermique TileOverlay et appliquez-le à votre carte.

Dans la mise en œuvre ci-dessus de initMapSettings, generateLocations est une méthode d’aide qui génère 1000 LatLng positions autour de l’emplacement central de la carte.

Une fois que vous avez terminé la mise en œuvre initMapSettings et generateLocations, vous pouvez exécuter votre application et cliquer sur la section de la carte thermique pour la voir en action.

Carte thermique des points sur une carte

4. Marqueurs de regroupement

Lorsqu’une carte a beaucoup de points de données dans une petite zone, elle peut être encombrée très rapidement lorsque l’utilisateur effectue un zoom arrière. Non seulement cela, mais le fait d’avoir trop de marqueurs affichés à la fois peut entraîner un ralentissement considérable de certains appareils.

Afin de contribuer à atténuer une partie de la frustration causée par ces problèmes, vous pouvez utiliser la bibliothèque Google Maps Utils pour animer vos marqueurs en clusters. La première chose à faire est de créer un nouvel objet modèle qui implémente le ClusterItem interface. Ce modèle doit implémenter le getPosition méthode de la ClusterItem interface afin de renvoyer un LatLng objet.

Une fois le modèle créé, vous pouvez créer un nouveau Activity appelé ClusterMarkerActivity et ajoutez-le à votre manifeste. Lorsque vous initialisez votre carte, vous devez créer un ClusterManager, associez-le à votre GoogleMapet ajoutez votre LatLng positions comme ClusterMarkerLocations à la ClusterManager pour que l’utilitaire sache quoi regrouper. Jetez un œil à la mise en œuvre de initMarkers pour mieux comprendre comment cela fonctionne.

En relation :  Les 6 meilleures applications de cashback qui vous récompensent pour vos achats

Dans cet exemple, nous créons 1000 points aléatoires à afficher et à les ajouter à la carte. La bibliothèque Google Maps Utils gère tout le reste pour nous.

Zoom avant sur les marqueurs lorsqu'ils ne sont pas regroupés
Vue agrandie de 1000 marqueurs regroupés

5. Autres utilitaires

En plus des deux derniers éléments, la bibliothèque Google Maps Utils regorge de petits utilitaires utiles. Si vous avez de nombreux points différents qui composent un itinéraire, vous pouvez les encoder en tant que polyligne puis ajoutez cette polyligne à votre carte en utilisant PolyUtil. Cela affichera un chemin entre chacun des points le long de la carte.

Itinéraire affiché à l'aide de PolyUtil pour décoder une polyligne

En plus de PolyUtil, Google a ajouté SphericalUtil qui peut être utilisé pour mesurer des distances ou déterminer la géométrie le long de la surface d’une sphère. Si vous souhaitez trouver la distance entre deux points sur la carte, vous pouvez appeler SphericalUtil.computeDistanceBetween( LatLng position1, LatLng position2 ) retourner un double de la distance en mètres. Si vous souhaitez trouver le cap entre deux points, vous pouvez appeler SphericalUtil.computeHeading( LatLng point1, LatLng point2 ).

Distance entre deux points de SphericalUtil

En relation avec cela, une autre méthode d’utilité dans le SpericalUtil class vous permet de trouver un point à un certain cap et à une certaine distance. Je recommande de parcourir le Documentation pour en savoir plus sur le SpericalUtil classe.

Conclusion

Dans ce tutoriel, vous venez de gratter la surface de la bibliothèque Google Maps Utils et tout ce qu’elle a à offrir. Les autres fonctionnalités qu’il peut ajouter à votre application incluent l’ajout de superpositions pour les données KML, la création de marqueurs personnalisés et des méthodes d’aide pour travailler avec GeoJSON.

Heureusement, Google a open source toute la bibliothèque, vous pouvez donc trouver le code source et le code de démonstration de la bibliothèque sur GitHub. Après avoir parcouru les trois dernières parties de cette série, vous devriez maintenant être suffisamment à l’aise avec Google Maps pour les ajouter à vos propres applications afin d’enrichir l’expérience utilisateur et de créer de superbes applications.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.