Guia do desenvolvedor
Local Navigation
- Visão geral dos serviços que se baseiam em localização
- Encontrar uma localização
- Geocodificação e geocodificação reversa
- Receber alertas de proximidade usando geofence
- Determinar a direção ou a posição
- Obter o tempo estimado de viagem, distância e hora de partida
- Visualizar uma localização usando mapas
- Personalizar a aparência de um mapa
- Integrar com o BlackBerry Maps
- Mais informações
- Glossário
- Enviar comentários
- Aviso legal
Documentação do produto
>
Documentação do desenvolvedor
>
Guias de desenvolvimento Java e referência de API
>
Guia do desenvolvedor
Location-Based Services - BlackBerry Java SDK - 7.0
Marcar e configurar a visibilidade para localizações em um mapa
As etapas a seguir descrevem como atribuir tags a itens mapeados que são armazenados em uma classe MapDataModel. A visibilidade é configurada para exibir localizações que tenham a tag "work". O mapa resultante do aplicativo é mostrado na seguinte imagem:

- Importe as classes e interfaces necessárias.
import net.rim.device.api.lbs.maps.*; import net.rim.device.api.lbs.maps.model.*; import net.rim.device.api.lbs.maps.ui.*; import net.rim.device.api.ui.*; import net.rim.device.api.ui.container.*;
- Crie a estrutura do aplicativo estendendo a classe UiApplication. Em main(), crie uma instância da nova classe e invoque enterEventDispatcher() para habilitar o aplicativo para receber eventos. No construtor de aplicativo, invoque pushScreen() para exibir a tela personalizada do aplicativo. O MapTagScreen, que é descrito na etapa 3, representa a tela personalizada.
public class MapTaggingDemo extends UiApplication { public static void main(String[] args) { MapTaggingDemo theApp = new MapTaggingDemo(); theApp.enterEventDispatcher(); } public MapTaggingDemo() { pushScreen(new MapTagScreen()); } } - Crie a estrutura da tela personalizada estendendo a classe FullScreen. No construtor, invoque super() para criar um menu padrão.
class MapTagScreen extends FullScreen { public MapTagScreen() { super(FullScreen.DEFAULT_CLOSE | FullScreen.DEFAULT_MENU | FullScreen.VERTICAL_SCROLL | FullScreen.VERTICAL_SCROLLBAR); - No construtor de tela, chame MapFactory.getInstance() para criar uma instância da classe MapFactory, e em seguida chame generateRichMapField() para gerar o campo de mapa. Invoque add() para adicionar a instância RichMapField à tela.
RichMapField map = MapFactory.getInstance().generateRichMapField(); add(map);
- Invoque getModel() para criar uma instância da classe MapDataModel.
MapDataModel data = map.getModel();
- Crie instâncias da classe MapLocation para definir as localizações. Passe a latitude, longitude, rótulo e descrição de cada localização aos objetos MapLocation.
MapLocation julieHome = new MapLocation( 43.47751, -80.54817, "Julie - Home", null ); MapLocation headOffice = new MapLocation( 43.47550, -80.53900, "Head Office", null ); - Crie um identificador de número inteiro para representar um item mapeável. Atribua o item mapeável ao identificador invocando add() para adicionar uma localização e forneça um dos objetos MapLocation e uma tag da localização para MapDataModel. Você pode usar o identificador para acessar o item em MapDataModel e atribuir outra tag a um item mapeável invocando tag() e fornecendo como argumento o identificador e a tag. Na amostra de código a seguir, duas localizações são adicionadas a MapDataModel e para cada localização são atribuídas duas tags.
int julieHomeId = data.add( (Mappable) julieHome, "julie" ); data.tag( julieHomeId, "home" ); int headOfficeId = data.add( (Mappable) headOffice, "julie" ); data.tag( headOfficeId, "work" );
- Defina mais duas localizações e invoque add() para adicionar as localizações a MapDataModel. Invoque tag() para atribuir as tags apropriadas às localizações.
MapLocation paulHome = new MapLocation( 43.49487, -80.55335, "Paul - Home", null ); int paulHomeId = data.add( (Mappable) paulHome, "paul" ); data.tag( paulHomeId, "home" ); data.tag( headOfficeId, "paul" ); data.tag( paulHomeId, "sarah" ); MapLocation manufacturing = new MapLocation( 43.46514, -80.50506, "Manufacturing", null ); int manufacturingId = data.add( (Mappable) manufacturing, "sarah" ); data.tag( manufacturingId, "work" ); - Ative a visibilidade para as localizações que têm a tag "work". Por padrão, todas as localizações são visíveis no mapa. Invoque setVisibleNone() para desativar a visibilidade de todas as localizações. Invoque setVisible() e forneça a tag "trabalho" como argumento para especificar que somente as localizações com a tag "trabalho" estão visíveis no mapa.
data.setVisibleNone(); data.setVisible( "work" );
- Invoque getMapField().update() para atualizar a visualização do mapa. Passe o valor Booleano true ao método update para recalcular o centro e o zoom do mapa com as localizações visíveis no mapa.
map.getMapField().update(true);
Tópico anterior: Marcar e configurar a visibilidade para localizações em um mapa
Estas informações foram úteis? Gostaríamos de receber seus comentários.