Erstellen einer Hierarchie von Geoobjekten

Geoobjekte sind eine einfache Methode, um entweder ein KML-Dokument in Ihre Anwendung zu importieren oder Objekte zu Organisationszwecken zu gruppieren. Wenn Ihre Anwendung Informationen aus einem KML-Dokument in abbildbare Objekte konvertieren muss, können Sie die Hierarchie der Elemente mithilfe der Klassen GsFolder und GsRoot beibehalten. Wenn Sie jedoch die Objekte aus der Hierarchie zu einer Karte hinzufügen möchten, müssen Sie die Objekte einzeln hinzufügen. Wenn Sie versuchen, das Stammverzeichnis oder einen Ordner in einer Baumstruktur zum MapDataModel einer Karte hinzuzufügen, werden die Objekte nicht auf der Karte dargestellt.

Das net.rim.device.api.lbs.maps.model.geospatial-Paket enthält die folgenden Klassen, die zum Erstellen einer Hierarchie von abbildbaren Elementen erforderlich sind.

Klasse oder Schnittstelle

Beschreibung

GsRoot

Repräsentiert den Container der obersten Ebene für eine Hierarchien von GsElement- und StyleSet-Objekten, die verwendet werden, um den Inhalt zu rendern.

GsFolder

Repräsentiert einen Ordner, in dem Sie GsElement-Objekte sowie GsRoot-Objekte speichern können, die Gruppen von GsElement-Objekten enthalten.

GsElement

Definiert die Schnittstelle, die von allen Geoklassen implementiert wird.

GsElementEnumeration

Erlaubt Ihnen, eine Sammlung von GsElements-Objekten aufzulisten.

Organisieren von Geoobjekten in einem Ordner

Das folgende Codebeispiel zeigt, wie Sie eine Hierarchie von Geoobjekten erstellen. Das Beispiel enthält zwei verschiedene GsRoot-Objekte, die jeweils ein Array von Geoobjekten enthalten. Die GsRoot-Objekte befinden sich in einem Ordner.

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

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.