Creazione di una gerarchia di oggetti geospaziali

Gli oggetti geospaziali rappresentano un metodo conveniente per importare un documento KML nell'applicazione o, semplicemente, per raggruppare gli oggetti per motivi di organizzazione. Se l'applicazione deve convertire informazioni da un documento KML in oggetti mappabili, è possibile conservare la gerarchia degli elementi mediante le classi GsFolder e GsRoot. Tuttavia, se si desidera aggiungere gli oggetti dalla gerarchia a una mappa, è necessario aggiungere gli oggetti singolarmente. Se si tenta di aggiungere la directory principale o una cartella di una struttura a una mappa MapDataModel, non viene eseguito il rendering degli oggetti sulla mappa.

Il pacchetto net.rim.device.api.lbs.maps.model.geospatial contiene le classi riportate di seguito, richieste per creare una gerarchia di elementi mappabili.

Classe o interfaccia

Descrizione

GsRoot

Rappresenta il contenitore di livello più alto in una gerarchia di oggetti GsElement e StyleSet, che vengono utilizzati per eseguire il rendering del contenuto.

GsFolder

Rappresenta una cartella in cui è possibile memorizzare oggetti GsElement e GsRoot, che contengono gruppi di oggetti GsElement.

GsElement

Definisce l'interfaccia implementata da tutte le classi geospaziali

GsElementEnumeration

Consente di enumerare tramite una raccolta di oggetti GsElements

Organizzazione di oggetti geospaziali in una cartella

L'esempio di codice seguente mostra come creare una gerarchia di oggetti geospaziali. L'esempio utilizza due diversi oggetti GsRoot, ciascuno dei quali contiene una matrice di oggetti geospaziali. Gli oggetti GsRoot sono contenuti in una cartella.

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

Le informazioni sono state utili? Inviateci i vostri commenti.