Etiquetar y configurar la visibilidad de las ubicaciones en un mapa

Puede asignar etiquetas a las ubicaciones almacenadas en una clase MapDataModel. Cada clase MapField tiene una instancia MapDataModel asociada. La clase MapDataModel, proporcionada en el paquete net.rim.device.api.lbs.maps.model, representa un contenedor. Puede agregar ubicaciones y datos asociados para las ubicaciones al contenedor invocando MapDataModel.add(). Cualquier elemento y sus datos asociados se consideran elementos asignables en el contenedor.

Puede agrupar los elementos asignables mediante la asignación de etiquetas a los elementos (por ejemplo, todas las ubicaciones de trabajo tendrá una etiqueta "trabajo"). Puede invocar MapDataModel.add() o MapDataModel.tag() para etiquetar elementos asignables en un contenedor MapDataModel. El método add() le permite agregar un elemento asignable al contenedor y le permite especificar una etiqueta para el elemento. El método tag() le permite especificar una etiqueta para un único elemento asignable que se encuentre en el contenedor. Varias ubicaciones pueden tener la misma etiqueta (por ejemplo, todas las oficinas de RIM pueden etiquetarse como "RIM") y una única ubicación puede tener varias etiquetas (por ejemplo, un domicilio puede tener etiquetas tanto para "Sarah" como para "Paul").

Puede especificar qué elementos etiquetados de los que se almacenan en MapDataModel están visibles u ocultos en un mapa. De forma predeterminada, todos los elementos en MapDataModel están visibles. Por ejemplo, puede agregar la etiqueta "parque" a varias ubicaciones y puede especificar que sólo las ubicaciones con la etiqueta "parque" se muestren en el mapa. Puede especificar los elementos que están visibles en el mapa invocando en primer lugar MapDataModel.setVisibleNone() para desactivar la visibilidad de todos los elementos y, a continuación, invocando MapDataModel.setVisible() para activar la visibilidad de los elementos especificados.

Ejemplo de código: etiquetar ubicaciones mediante el mapa MapDataModel.add()

En el siguiente ejemplo de código, se definen tres ubicaciones y, a continuación, se agregan y etiquetan invocando el método MapDataModel.add(). Sólo las ubicaciones que tienen una etiqueta "RIM" están visibles en el mapa.

MapDataModel model = map.getModel();
MapLocation office01 = new MapLocation( 43.47550, -80.53900, "Head Office", null );
MapLocation office02 = new MapLocation( 43.48261, -80.54169, "Manufacturing", null );
MapLocation justinHome = new MapLocation( 43.47751, -80.54817, "Justin - Home", null);
model.add( (Mappable) office01, "RIM");
model.add( (Mappable) office02, "RIM");
model.add( (Mappable) justinHome, "home");
model.setVisibleNone();
model.setVisible( "RIM" );

¿Le ha resultado útil esta información? Envíenos sus comentarios.