Карта BlackBerry
На карте Blackberry невозможно отобразить пользовательский значок для POI.
Вещи, которые вы можете включить в Расположение на карте Blackberry:
- Широта местоположения * 100 000. Юг отрицательный.
- Долгота местоположения * 100 000. Запад отрицателен.
- Метка для отображения рядом с локацией.
- Описание, отображаемое, когда пользователь смартфона BlackBerry выбирает
подробности.
- Уровень масштабирования от 0 до MAX_ZOOM.
- Адрес
- Город
- Провинция или штат
- Страна
- Почтовый индекс
- Телефон
- Факс
- URL
- Адрес электронной почты
- Категория
- Информация о рейтинге от 0 до 5
См. Что такое - формат документа местоположения карт BlackBerry
Также см. Как - вызвать BlackBerry Maps
Использование MapField
В качестве альтернативы вы можете попробовать MapField + менеджер / переопределение краски экрана.
Пользовательское расширение для MapField:
class CustomMapField extends MapField {
Bitmap mIcon;
XYRect mDest;
public void moveTo(Coordinates coordinates) {
super.moveTo(coordinates);
mDest = null;
}
protected void paint(Graphics graphics) {
super.paint(graphics);
if (null != mIcon) {
if (null == mDest) {
XYPoint fieldOut = new XYPoint();
convertWorldToField(getCoordinates(), fieldOut);
int imgW = mIcon.getWidth();
int imgH = mIcon.getHeight();
mDest = new XYRect(fieldOut.x - imgW / 2,
fieldOut.y - imgH, imgW, imgH);
}
graphics.drawBitmap(mDest, mIcon, 0, 0);
}
}
}
Пример использования:
class Scr extends MainScreen {
CustomMapField mMapField;
Coordinates mCoordinates;
public Scr() {
LocationProvider provider = null;
Location location = null;
try {
provider = LocationProvider.getInstance(null);
} catch (LocationException e) {
e.printStackTrace();
}
try {
location = provider.getLocation(-1);
} catch (LocationException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
mCoordinates = location.getQualifiedCoordinates();
add(new LabelField("Latitude: "
+ String.valueOf(Coordinates.convert(
mCoordinates.getLatitude(),
Coordinates.DD_MM_SS))));
add(new LabelField("Longitude: "
+ String.valueOf(Coordinates.convert(
mCoordinates.getLongitude(),
Coordinates.DD_MM_SS))));
mMapField = new CustomMapField();
mMapField.mIcon = Bitmap.getBitmapResource("poi_icon.png");
mMapField.moveTo(mCoordinates);
add(mMapField);
}
}
Смотри также
Использование MapComponent в Blackberry
Руководство по разработке карт GPS и BlackBerry
Подготовка данных GPS
Если это реальное устройство, убедитесь, что GPS доступен и включен.
Если это симулятор, то перед запуском программы используйте меню симулятора -> Симуляция -> Местоположение GPS, чтобы установить данные GPS.
Другой вариант - жестко указать свои собственные координаты и использовать их без GPS:
double latitude = 51.507778;
double longitude = -0.128056;
Coordinates mCoordinates = new Coordinates(latitude, longitude, 0);