Marcar e configurar a visibilidade para localizações em um mapa

Você pode atribuir tags a localizações que são armazenadas em uma classe MapDataModel. Cada classe MapField tem uma instância MapDataModel associada. A classe MapDataModel que é fornecida no pacote net.rim.device.api.lbs.maps.model representa um contêiner. Você pode adicionar localizações e dados associados das localizações ao contêiner invocando MapDataModel.add(). Qualquer item e seus dados associados são considerados itens mapeáveis no contêiner.

Você pode agrupar itens mapeáveis atribuindo tags aos itens (por exemplo, todas as localizações de trabalho têm uma tag "work"). Você pode invocar MapDataModel.add() ou MapDataModel.tag() para itens de tag mapeáveis em um contêiner MapDataModel. O método add() permite que você adicione um item mapeável ao contêiner e permite que você especifique uma tag para o item. O método tag() permite que você especifique uma tag para um único item mapeável que esteja no contêiner. Múltiplas localizações podem ter a mesma tag (por exemplo, todos os escritórios da RIM podem ser marcados com "RIM"), e uma única localização pode ter várias tags (por exemplo, uma residência pode ter as tags "Sarah" e "Paul").

Você pode especificar quais itens com tag que estejam armazenados em MapDataModel são visíveis ou ocultado em um mapa. Por padrão, todos os itens em MapDataModel são visíveis. Por exemplo, você pode adicionar a tag "park" a várias localizações, podendo também especificar que só as localizações com a tag "park" serão exibidas no mapa. Você pode especificar os itens que são visíveis no mapa primeiro invocando MapDataModel.setVisibleNone() para desativar a visibilidade de todos os itens, e então invocando MapDataModel.setVisible() para ativar a visibilidade dos itens especificados.

Exemplo de código: Marcar localizações usando o método MapDataModel.add()

Na amostra de código a seguir, três localizações são definidas, e então adicionadas e etiquetadas invocando o método MapDataModel.add(). Apenas as localizações que têm uma tag "RIM" serão visíveis no 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" );

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