`
isiqi
  • 浏览: 16164660 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Blackberry引路蜂地图开发示例:第一个地图应用

 
阅读更多

使用BlackBerry JDE 6.0.0创建一个新的Workspace, RIMGISEngineTutorial. 首先添加一个新的Lib项目libGISEngine, 在其中添加引路蜂开发库。然后添加HelloWorldRIM Blackberry应用,将libGISEngine设为项目HelloWorldRIM的依赖库(Project Dependencies).

同样为简单起见,设计一个共用类MapDemoRIM作为后续例子的基类。

//--------------------------------- PACKAGE ------------------------------------
package com.pstreets.gisengine.demo;
 
//--------------------------------- IMPORTS ------------------------------------
import com.mapdigit.gis.MapLayer;
import com.mapdigit.gis.drawing.IGraphics;
import com.mapdigit.gis.drawing.IImage;
import com.mapdigit.gis.raster.IMapDrawingListener;
import com.mapdigit.gis.raster.IReaderListener;
import com.mapdigit.gis.raster.MapTileDownloadManager;
import com.mapdigit.gis.raster.RasterMap;
import com.mapdigit.licence.LicenceManager;
import com.pstreets.gisengine.demo.rim.drawing.RIMGraphicsFactory;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.system.Display;
import net.rim.device.api.ui.component.Menu;
import net.rim.device.api.ui.TouchEvent;
 
//[------------------------------ MAIN CLASS ----------------------------------]
/**
 * Base class for all Map Demos.
 * <hr><b>© Copyright 2011 Guidebee, Inc. All Rights Reserved.</b>
 * @version     1.00, 06/02/11
 * @author      Guidebee Pty Ltd.
 */
public abstract class MapDemoRIM extends UiApplication implements IReaderListener,
        IMapDrawingListener {
 
    protected RasterMap map;
    protected MapTileDownloadManager mapTileDownloadManager;
    protected IImage mapImage;
    protected IGraphics mapGraphics;
    protected MapCanvas canvas;
 
    public MapDemoRIM() {
        try {
            LicenceManager licenceManager = LicenceManager.getInstance();
            //expires on Tue Mar 15 20:54:42 CST 2011
           long keys[] = {0x34ba283b8daeb659L, -0x53c811f9da86e998L,
            -0x34ba25c3c581521eL, 0xf15df9fc7e45628L, 0x6a4ece44296c0287L,
            0x4ab0cff532902b1cL,};
            licenceManager.addLicence("GuidebeeMap_JavaME", keys);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
 
    }
 
    public void init() {
        canvas = new MapCanvas();
        //set the graphics factory
        MapLayer.setAbstractGraphicsFactory(RIMGraphicsFactory.getInstance());
        mapImage = MapLayer.getAbstractGraphicsFactory()
                .createImage(Display.getWidth(),
                Display.getHeight());
        mapGraphics = mapImage.getGraphics();
        //Create the Digital Map objects.
        mapTileDownloadManager = new MapTileDownloadManager(this);
        try{
        map = new RasterMap(1024, 1024, mapTileDownloadManager);
    }catch(Exception e){}
        map.setScreenSize(Display.getWidth(),
                Display.getHeight());
        mapTileDownloadManager.start();
        map.setMapDrawingListener(this);
 
    }
 
    protected void createMenu(Menu menu, int instance){
    }
    public void closeApp() {
        mapTileDownloadManager.stop();
    }
 
    public void readProgress(int arg0, int arg1) {
        System.out.println(arg0 + "/" + arg1);
    }
 
    public void done() {
        if (canvas != null) {
            canvas.invalidate();
        }
    }
 
    protected class MapCanvas extends MainScreen {
 
        private void panMap(float x, float y) {
        float dx = x - oldX;
           float dy = y - oldY;
           if(!(dx==0 && dy==0))
        map.panDirection((int)dx, (int)dy);
 
    }
        boolean isPan=false;
        private float oldX = -1;
        private float oldY = -1;
    
        protected void paint(Graphics g) {
            map.paint(mapGraphics);
            Bitmap bitmap=(Bitmap) mapImage.getNativeImage();
            g.drawBitmap(0,0,bitmap.getWidth(),bitmap.getHeight(),bitmap,0,0);
        }
        
        public void close(){
            closeApp();
        }
        
        protected boolean touchEvent(TouchEvent event){
            int action=event.getEvent();
          switch(action){
        case TouchEvent.DOWN:
                  oldX = event.getGlobalX(1);
            oldY = event.getGlobalY(1);
                    isPan=true;
                    break;
         case TouchEvent.UP:
                    oldX = event.getGlobalX(1);
            oldY = event.getGlobalY(1);
                    isPan=false;
                   break;
         case TouchEvent.MOVE :
                 if(isPan)
            {
            panMap(event.getGlobalX(1), event.getGlobalY(1));
            oldX = event.getGlobalX(1);
            oldY = event.getGlobalY(1);
            }
                    break;
         }
      return true;
        }
        protected void makeMenu(Menu menu, int instance){
            createMenu(menu,instance);
        }
    }
}

类MapDemoRIM派生于UiApplication,为Blackberry应用对象。MapCanvas派生于MainScreen,用于显示地图,并响应TouchEvent,可以平移地图。

有了这个基类,HelloWorldRIM就比较简单,下面的例子显示南京地图,缩放级别为13级,地图类型为Bing中国地图。

//--------------------------------- PACKAGE ------------------------------------
package com.pstreets.gisengine.demo.rim;
 
//--------------------------------- IMPORTS ------------------------------------
import com.mapdigit.gis.geometry.GeoLatLng;
import com.mapdigit.gis.raster.MapType;
import com.pstreets.gisengine.demo.MapDemoRIM;
 
//[------------------------------ MAIN CLASS ----------------------------------]
/**
 *  Hello world demo for Guidebee Map API on RIM platform.
 * <hr><b>© Copyright 2011 Guidebee, Inc. All Rights Reserved.</b>
 * @version     1.00, 06/02/11
 * @author      Guidebee Pty Ltd.
 */
public class HelloWorldRIM extends MapDemoRIM {
 
    /**
     * Entry point for application
     * @param args Command line arguments (not used)
     */
    public static void main(String[] args)
    {
        // Create a new instance of the application and make the currently
        // running thread the application's event dispatch thread.
        HelloWorldRIM theApp = new HelloWorldRIM();      
        theApp.enterEventDispatcher();
    }
    
    public HelloWorldRIM() {
        init();
        pushScreen(canvas);
        GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778);
        map.setCenter(center, 13, MapType.MICROSOFTCHINA);
    }
    
}


Blackberry引路蜂地图开发包Ver2.1下载


分享到:
评论

相关推荐

    引路蜂地图开发包2.0 (Blackberry版)

    引路蜂地图开发包2.0 包含了 开发库 JavaDoc 示例代码 详细请参见 http://blog.csdn.net/guidebee/archive/2010/09/19/5895245.aspx

    黑莓blackberry第三方输入法:百度输入法

    1.解压BaiduInput_blackberry_v1.0.0.7.zip文件,用黑莓桌面管理器加载baiduinput.alx,在安装时务必把默认的四个选项都打上勾。 2.安装完毕后会在出现一个百度记事本和一个百度输入法图标。 3.百度记事本是用在第三...

    黑莓GPRS地图黑莓GPRS地图

    使用于黑莓手机地图黑莓GPRS地图黑莓GPRS地图黑莓GPRS地图

    如何为BlackBerry手机开发应用软件

    它提供了你所需要编译的BlackBerry(黑莓)应用软件的所有工具。然后,你需要安装BlackBerry(黑莓) Java Development Environment (currently version 3.7)。使用“完整”这个安装选项可以安装整个文档、代码样例...

    用Java API进行黑莓应用程序开发

    本文介绍了如何利用Java API进行黑莓应用程序的开发。对于想入门黑莓应用程序开发的新手比较合适。 注:文档为PDF幻灯片格式,英文文档。 英文名称:Developing Blackberry Applications Using Java API's

    手机Web应用开发平台PhoneGap.zip

    因此,目前开发商可以只 编写一次应用程序,然后在7个主要的移动平台和应用程序商店(app store)里进行发布,这些移动平台和应用程序商店包括:iOS、Android、BlackBerry、webOS、bada、Winodws Phone以及Symbian。...

    HTML5移动应用开发入门经典

    《HTML5移动应用开发入门经典》总共分为24章,以示例的方式对如何使用HTML5及相关技术进行移动应用开发做了全面而细致的介绍。《HTML5移动应用开发入门经典》首先讲解了HTML5的起源以及它为什么适用于移动设备,然后...

    黑莓 开发 文档 整合

    MDS用于快速企业级程序的无缝整合开发,现属于“Rapid Application Development”一部分。 文档名:BlackBerry_MDS_Studio_V4.1_Features_Technical_Review.pdf 2.黑莓MIDlet开发指南 [文档说明]BlackBerry ...

    [HTML5移动应用开发入门经典].(美)凯瑞恩.扫描版

    《HTML5移动应用开发入门经典》总共分为24章,以示例的方式对如何使用HTML5及相关技术进行移动应用开发做了全面而细致的介绍。《HTML5移动应用开发入门经典》首先讲解了HTML5的起源以及它为什么适用于移动设备,然后...

    BlackBerry App World应用提交和其他商业服务

    历史信息 •2009年4月1日在美国、加拿大和英国发布 •2009年7月31日扩展至另外10个国家 •法语、意大利语、德语和西班牙语的本地化支持 ...•支持支付服务(应用内购买)和BlackBerry PlayBook应用提交

    Android移动应用开发(第3版)卷Ⅰ基础篇 (Shane Conder, Lauren Darcey) PDF扫描版

    第3章 编写第一个Android应用程序  第4章 掌握Android开发工具  第二部分 Android应用程序设计基础 第5章 剖析Android应用程序  第6章 使用Android Manifest文件定义应用程序  第7章 管理应用程序资源  ...

    BlackBerry Widget 开发入门

    计的Web plug-in,通过这个plug-in,提供了一系列图形化的开发指导,文本就是基于Eclipse 的Web plug-in 开发的。 本文使用的BlackBerry Web Plug-in for Eclipse 版本为: v2.0 beta1 (下载地址如下): ...

    黑莓(BlackBerry)开发从入门到精通

    黑莓(BlackBerry)开发从入门到精通,一线黑莓应用开发人员经验集萃.· 首本全面介绍黑莓开发的中文技术书籍· 一线黑莓应用开发人员经验集萃· RIM中国区总裁鼎力推荐

    谷歌地图黑莓版

    谷歌地图黑莓版,很好用的,0S5版本。请大家下载。

    嵌入式实时操作系统uCOS-II:第1章 嵌入式系统导论.ppt

    "嵌入式实时操作系统uCOS-II:第1章 嵌入式系统导论" 本资源是关于嵌入式实时操作系统uCOS-II的第1章,介绍了嵌入式系统的概念和基本知识。 1. 嵌入式系统的定义:嵌入式系统是一种特殊的计算机系统,主要应用于...

    黑莓新注566个域名:98系列杂米近500个.docx

    黑莓新注566个域名:98系列杂米近500个.docx

    [黑莓游戏开发学习][Learn BlackBerry Games Development]

    Learn BlackBerry Games Development Paperback: 504 pages Publisher: Apress; 1 edition (March 30, 2010) Language: English ISBN-10: 1430227184 ISBN-13: 978-1430227182 Format: PDF You can buy this book: ...

    Google Android SDK开发范例大全(完整版)

    这个示例应用程序可以作为 Android 应用程序开发的良好起点。 Tools 目录 包含所有用于构建 Android 应用程序的命令行工具。最常用、最有用的工具是 adb 实用程序(Android Debug Bridge)。 usb_driver 该目录包含...

    黑莓全系列 谷歌地图 Google map 4.4.0 ROM4.5

    黑莓全系列 谷歌地图 Google map 4.4.0 ROM4.5

    黑莓google地图

    黑莓google地图,手有黑莓,万路通,乐图。

Global site tag (gtag.js) - Google Analytics