Création d'une hiérarchie d'objets géospatiaux

Les objets géospatiaux constituent une méthode pratique d'importation d'un document KML dans votre application ou de regroupement d'objets à des fins organisationnelles. Si votre application doit convertir les informations d'un document KML en des objets mappables, vous pouvez conserver la hiérarchie des éléments en utilisant les classes GsFolder et GsRoot. Toutefois, si vous souhaitez ajouter les objets de la hiérarchie à une carte, vous devez les ajouter un par un. Si vous tentez d'ajouter la racine ou un dossier d'une arborescence à la classe MapDataModel d'une carte, les objets ne sont pas affichés sur la carte.

Le progiciel net.rim.device.api.lbs.maps.model.geospatial contient les classes suivantes, nécessaires à la création d'une hiérarchie d'éléments mappables.

Classe ou interface

Description

GsRoot

Représente le conteneur le plus élevé d'une hiérarchie d'objets StyleSet et d'objets GsElement utilisés pour afficher le contenu.

GsFolder

Représente un dossier où vous pouvez stocker des objets GsElement, de même que des objets GsRoot qui contiennent des groupes d'objets GsElement.

GsElement

Définit l'interface mise en œuvre par toutes les classes géospatiales.

GsElementEnumeration

Vous permet d'énumérer par un ensemble d'objets GsElements.

Organisation des objets géospatiaux dans un dossier

L'échantillon de code suivant montre comment créer une hiérarchie d'objets géospatiaux. L'échantillon a deux objets GsRoot différents. Chacun contient un tableau d'objets géospatiaux. Les objets GsRoot sont contenus dans un dossier.

GsPoint[] gsPoints = new GsPoint[3];
gsPoints[0] = new GsPoint(45.05, -75.0, "Point 1", "Description.");
gsPoints[1] = new GsPoint(45.0, -74.95, "Point 2", "Description.");
gsPoints[2] = new GsPoint(44.95, -74.975, "Point 3", "Description.");
GsRoot pointRoot = new GsRoot("Root 1", "This root contains points.", 
        gsPoints);
GsMarker[] gsMarkers = new GsMarker[3];
gsMarkers[0] = new GsMarker(44.95, -75.025, "Marker 1", "Description.", 
        "http://www.rim.com/products/appworld_3col.jpg");
gsMarkers[1] = new GsMarker(45.0, -75.05, "Marker 2", "Description.", 
        "http://www.rim.com/products/appworld_3col.jpg");
gsMarkers[2] = new GsMarker(45.05, -75.0, "Marker 3", "Description.", 
        "http://www.rim.com/products/appworld_3col.jpg");
GsRoot markerRoot = new GsRoot("Root 2", "This root contains markers", 
        gsMarkers);
GsFolder folder = new GsFolder("Folder", "The folder holds the root elements.");
folder.addElement(pointRoot);
folder.addElement(markerRoot);

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.