blackberry - 如何在 BlackBerry Map 中显示我们自己的图标?

标签 blackberry gps maps jsr179

我想知道如何使用我们自己的标志来显示BBMap中的特定位置?谁能知道如何做到这一点?

最佳答案

黑莓 map

无法在 Blackberry Map 中显示 POI 的自定义图标。
您可以在 Blackberry map 上的位置中包含的内容:

  • 位置的纬度 * 100,000。南为阴性。
  • 位置的经度 * 100,000。西方是消极的。
  • 要显示在位置旁边的标签。
  • BlackBerry 智能手机用户选择时显示的说明
    细节。
  • 缩放级别从 0 到 MAX_ZOOM。
  • 地址
  • 城市
  • 省或州
  • 国家
  • 邮政编码
  • 电话
  • 传真
  • 网址
  • 邮箱地址
  • 分类
  • 0 到 5 之间的评级信息

  • What Is - BlackBerry Maps Location Document Format

    另见 How To - Invoke 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);
        }
    }
    

    也可以看看
    Using MapComponent in Blackberry
    GPS and BlackBerry Maps Development Guide

    准备 GPS 数据

    如果是真实设备,请确保 GPS 可用并已打开。
    如果是模拟器,那么在启动程序之前使用模拟器菜单 -> 模拟 -> GPS 位置来设置 GPS 数据。
    其他选项是硬编码您自己的坐标并在没有 GPS 的情况下使用它们:

        double latitude = 51.507778;
        double longitude = -0.128056;
        Coordinates mCoordinates = new  Coordinates(latitude, longitude, 0);
    

    关于blackberry - 如何在 BlackBerry Map 中显示我们自己的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1524428/

    相关文章:

    c# - 真正让 C# 人理解 Java-ME 的最佳方式

    blackberry - 在 Blackberry J2ME 中写入时 LWUIT "Textfield"主题被覆盖

    data-structures - 具有一个 ZSET 的 Redis GEORADIUS 与许多特定大小的 ZSET

    blackberry - 如何在没有 GPS 的情况下在 Blackberry OS 5 上获取地理位置

    javascript - 在 HERE map 中将鼠标悬停在标记上时显示内容 Div

    javascript - Google API 错误 RefererNotAllowedMapError

    java - 黑莓计算器

    java - 融合位置提供程序的最低 android 操作系统级别是多少

    javascript - 在哪里可以获得 javascript 国家世界地图的形状文件?

    Blackberry Playbook WebWorks 如何使文本字段打开不同的虚拟键盘?