Crear una jerarquía de objetos geoespaciales

Los objetos geoespaciales son una forma cómoda de importar un documento KML a su aplicación o de agrupar los objetos para fines organizativos. Si su aplicación debe convertir la información de un documento KML en objetos asignables, puede retener la jerarquía de los elementos mediante las clases GsFolder y GsRoot. Sin embargo, si desea agregar los objetos de la jerarquía a un mapa, debe agregar los objetos de forma individual. Si intenta agregar la raíz o una carpeta de un árbol a la clase MapDataModel de un mapa, los objetos no se representarán en el mapa.

El paquete net.rim.device.api.lbs.maps.model.geospatial contiene las siguientes clases necesarias para crear una jerarquía de elementos asignables.

Clase o interfaz

Descripción

GsRoot

Representa el contenedor de mayor nivel para una jerarquía de objetos GsElement y objetos StyleSet utilizados para representar el contenido.

GsFolder

Representa una carpeta en la que puede almacenar objetos GsElement, así como objetos GsRoot que contengan grupos de objetos GsElement.

GsElement

Define la interfaz que implementan todas las clases geoespaciales

GsElementEnumeration

Le permite enumerar a través de una serie de objetos GsElements

Organizar objetos geoespaciales en una carpeta

El siguiente ejemplo de código muestra cómo crear una jerarquía de objetos geoespaciales. La muestra tiene dos objetos GsRoot diferentes, cada uno de los cuales contiene una matriz de objetos geoespaciales. Los objetos GsRoot están contenidos en una carpeta.

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 ha resultado útil esta información? Envíenos sus comentarios.