Criar uma hierarquia de objetos geoespaciais

Os objetos geoespaciais são uma maneira conveniente de importar um documento de KML para seu aplicativo, ou agrupar objetos para fins organizacionais. Se seu aplicativo precisar converter informações de um documento de KML em objetos mapeáveis, você poderá reter a hierarquia dos elementos usando as classes GsFolder e GsRoot. No entanto, se você deseja adicionar os objetos da hierarquia a um mapa, deve fazer isso individualmente. Se você tentar adicionar a raiz ou uma pasta de uma árvore a um mapa MapDataModel, os objetos não serão processados no mapa.

O pacote net.rim.device.api.lbs.maps.model.geospatial contém as seguintes classes que são necessárias para criar uma hierarquia de elementos mapeáveis.

Classe ou interface

Descrição

GsRoot

Representa o contêiner do mais alto nível para uma hierarquia de objetos GsElement e StyleSet que são usados para processar o conteúdo.

GsFolder

Representa uma pasta onde você pode armazenar objetos GsElement, assim como objetos GsRoot que contêm grupos de GsElement.

GsElement

Define a interface que é implementada por todas as classes geoespaciais

GsElementEnumeration

Permite que você enumere por um conjunto de objetos GsElements

Organizar objetos geoespaciais em uma pasta

O seguinte exemplo de código demonstra como criar uma hierarquia de objetos geoespaciais. O exemplo tem dois diferentes objetos GsRoot, cada um contendo uma seqüência de objetos geoespaciais. Os objetos GsRoot estão contidos dentro de uma pasta.

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

Estas informações foram úteis? Gostaríamos de receber seus comentários.