日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2024/3/26 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java ME引路蜂地图开发示例:第一个地图应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面的代碼顯示中國南京地圖

//------------------------------------------------------------------------------ // COPYRIGHT 2011 GUIDEBEE // ALL RIGHTS RESERVED. // GUIDEBEE CONFIDENTIAL PROPRIETARY / REVISIONS // Date Name Tracking # Description // --------- ------------------- ---------- -------------------------- // 28JAN2011 James Shen Initial Creation//--------------------------------- PACKAGE ------------------------------------ package com.pstreets.gisengine.demo.midp;//--------------------------------- IMPORTS ------------------------------------ import javax.microedition.midlet.MIDlet; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; import javax.microedition.lcdui.Display;import com.mapdigit.gis.MapLayer; import com.mapdigit.gis.drawing.IGraphics; import com.mapdigit.gis.drawing.IImage; import com.mapdigit.gis.geometry.GeoLatLng; import com.mapdigit.gis.raster.IMapDrawingListener; import com.mapdigit.gis.raster.IReaderListener; import com.mapdigit.gis.raster.MapTileDownloadManager; import com.mapdigit.gis.raster.MapType; import com.mapdigit.gis.raster.RasterMap;import com.mapdigit.licence.LicenceManager; import com.pstreets.gisengine.demo.midp.drawing.MIDPGraphicsFactory;//[------------------------------ MAIN CLASS ----------------------------------] /*** Hello China demo.* <hr><b>? Copyright 2011 Guidebee, Inc. All Rights Reserved.</b>* @version 1.00, 28/01/11* @author Guidebee Pty Ltd.*/ public class HelloChina extends MIDlet implements IReaderListener,IMapDrawingListener {protected RasterMap map;protected MapTileDownloadManager mapTileDownloadManager;protected IImage mapImage;protected IGraphics mapGraphics;protected MapCanvas canvas;public HelloChina() {try {LicenceManager licenceManager = LicenceManager.getInstance();long keys[] = {0x34ba283b8daeb659L, -0x53c811f9da86e998L,-0x34ba25c3c581521eL, 0xf15df9fc7e45628L, 0x6a4ece44296c0287L,0x4ab0cff532902b1cL,};licenceManager.addLicence("GuidebeeMap_JavaME", keys);} catch (Exception ex) {}}public void startApp() {canvas = new MapCanvas();//set the graphics factoryMapLayer.setAbstractGraphicsFactory(MIDPGraphicsFactory.getInstance());mapImage = MapLayer.getAbstractGraphicsFactory().createImage(canvas.getWidth(),canvas.getHeight());mapGraphics = mapImage.getGraphics();//Create the Digital Map objects.mapTileDownloadManager = new MapTileDownloadManager(this);try {map = new RasterMap(1024, 1024, mapTileDownloadManager);} catch (Exception ex) {}map.setScreenSize(canvas.getWidth(),canvas.getHeight());mapTileDownloadManager.start();map.setMapDrawingListener(this);GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778);map.setCenter(center, 13, MapType.GOOGLECHINA);Display.getDisplay(this).setCurrent(canvas);}public void pauseApp() {}public void destroyApp(boolean unconditional) {mapTileDownloadManager.stop();}public void readProgress(int downloaded, int total) {System.out.println(downloaded + "/" + total);}public void done() {if (canvas != null) {canvas.repaint();}}/*** Map canvas class, a subclass of Canvas.*/protected class MapCanvas extends Canvas {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);g.drawImage((Image) mapImage.getNativeImage(), 0, 0, 0);}public void pointerDragged(int x, int y) {if (isPan) {panMap(x, y);oldX = x;oldY = y;}}public void pointerPressed(int x, int y) {oldX = x;oldY = y;isPan = true;}public void pointerReleased(int x, int y) {oldX = x;oldY = y;isPan = false;}} }


?

  • 首先是設置使用許可(Licence),設置使用許可由二部分組成,一個是將licence文件(guidebee.lic)放在合適的目錄下,然后在程序中輸入正確的注冊碼。Ln 51-55
  • 前文說過,引路蜂地圖開發包不直接調用圖形相關方法,而是定義了一些接口函數,在使用時,需實現這些平臺相關的方法。例如在 Java ME平臺,MIDPFont, MIDPGraphics,MIDPGraphicsFactory,MIDPImage 實現了這些接口方法,在調用任務地圖相關方法,需要告訴地圖如何調用這些方法。MapLayer.setAbstractGraphicsFactory(MIDPGraphicsFactory.getInstance());則是用來設置平臺相關GraphicsFactory實現。Ln 64-67
  • 創建MapTileDownloaderManager 實例,MapTileDownloaderManager是用來管理工作線程以下載地圖圖片或是從本地地圖包中讀取地圖圖片。之后創建RasterMap 地圖實例,RasterMap使用MapTileDownloaderManager來獲取地圖圖片。Ln 70-Ln74
  • MapTileDownloaderManager.Start 啟動工作線程。注意在程序結束時,需調用Stop 方法來停止這些工作線程,如(6) Ln 77
  • 設置地圖中心點,這里設置是南京的經緯度坐標。地圖類型選擇是Google中國地圖,地圖包中定義了多達20多種不同的地圖可供選擇。地圖縮放級別為13級。1級最小,17級最大。 Ln 79 -80
  • 程序結束時,需調用Stop 方法來停止工作線程。 Ln 88
  • panDirection(dx,dy)用來平移地圖,將在后面介紹。 Ln 110
  • 在屏幕上顯示地圖。在這個應用中 MapCanvas 最終用來在屏幕上顯示地圖,每個程序都有一個UI界面,地圖最終總是要在屏幕上顯示的。這兩行代碼是將地圖復制到屏幕上。 Ln 119 -120
  • 地圖下載采取異步工作方式,也就是地圖圖片的讀取是通過工作線程在后臺工作,應用可以監視讀取圖片的進度readProgress,每張地圖圖片下載完畢時,會使用消息Done通知應用,在Done消息處理中一般用來更新屏幕顯示。Ln 91 -99
  • 在后面的示例中,一些共同的代碼不再重復,將設計一個基類MapDemoMIDP,創建地圖,設置使用許可等代碼都放在基類中.

    //------------------------------------------------------------------------------ // COPYRIGHT 2010 GUIDEBEE // ALL RIGHTS RESERVED. // GUIDEBEE CONFIDENTIAL PROPRIETARY / REVISIONS // Date Name Tracking # Description // --------- ------------------- ---------- -------------------------- // 28JAN2011 James Shen Initial Creation//--------------------------------- PACKAGE ------------------------------------ package com.pstreets.gisengine.demo;//--------------------------------- IMPORTS ------------------------------------ import javax.microedition.midlet.MIDlet; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image;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.MapType; import com.mapdigit.gis.raster.RasterMap; import com.mapdigit.licence.LicenceManager;import com.pstreets.gisengine.demo.midp.drawing.MIDPGraphicsFactory;//[------------------------------ MAIN CLASS ----------------------------------] //--------------------------------- REVISIONS ---------------------------------- // Date Name Tracking # Description // -------- ------------------- ------------- -------------------------- // 28JAN2011 James Shen Initial Creation/*** Base class for all Map Demos.* <hr><b>? Copyright 2010 Guidebee, Inc. All Rights Reserved.</b>* @version 1.00, 18/09/10* @author Guidebee Pty Ltd.*/ public abstract class MapDemoMIDP extends MIDlet implements IReaderListener,IMapDrawingListener {protected RasterMap map;protected MapTileDownloadManager mapTileDownloadManager;protected IImage mapImage;protected IGraphics mapGraphics;protected MapCanvas canvas;public MapDemoMIDP() {try {LicenceManager licenceManager = LicenceManager.getInstance();long keys[] = {0x34ba283b8daeb659L, -0x53c811f9da86e998L,-0x34ba25c3c581521eL, 0xf15df9fc7e45628L, 0x6a4ece44296c0287L,0x4ab0cff532902b1cL,};licenceManager.addLicence("GuidebeeMap_JavaME", keys);} catch (Exception ex) {ex.printStackTrace();}}/*** this only used for the vector map demo.*/public void initCanvas() {canvas = new MapCanvas();}public void init() {canvas = new MapCanvas();//set the graphics factoryMapLayer.setAbstractGraphicsFactory(MIDPGraphicsFactory.getInstance());mapImage = MapLayer.getAbstractGraphicsFactory().createImage(canvas.getWidth(),canvas.getHeight());mapGraphics = mapImage.getGraphics();//Create the Digital Map objects.mapTileDownloadManager = new MapTileDownloadManager(this);MapType.updateMapTileUrl();map = new RasterMap(1024, 1024, mapTileDownloadManager);map.setScreenSize(canvas.getWidth(),canvas.getHeight());mapTileDownloadManager.start();map.setMapDrawingListener(this);}public void pauseApp() {}public void destroyApp(boolean unconditional) {mapTileDownloadManager.stop();}public void readProgress(int arg0, int arg1) {System.out.println(arg0 + "/" + arg1);}public void done() {if (canvas != null) {canvas.repaint();}}/*** Map canvas class, a subclass of Canvas.*/protected class MapCanvas extends Canvas {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);g.drawImage((Image) mapImage.getNativeImage(), 0, 0, 0);}public void pointerDragged(int x, int y) {if (isPan) {panMap(x, y);oldX = x;oldY = y;}}public void pointerPressed(int x, int y) {oldX = x;oldY = y;isPan = true;}public void pointerReleased(int x, int y) {oldX = x;oldY = y;isPan = false;}} }


    ?

    總結

    以上是生活随笔為你收集整理的Java ME引路蜂地图开发示例:第一个地图应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩第四页| 熟女人妻视频 | 极品三级 | 夜夜骚av | 国产午夜福利100集发布 | 国产一卡二卡在线播放 | 无码人妻黑人中文字幕 | 国产精品探花一区二区在线观看 | 亚洲一区二区小说 | 日本极品少妇 | 成人国产片| 国产精品亚洲专区无码牛牛 | 乱短篇艳辣500篇h文最新章节 | 蜜臀久久99精品久久久无需会员 | 成年人的免费视频 | 亚洲精品久久久久久无码色欲四季 | 亚洲第一第二区 | 精品在线观看免费 | 欧美 日韩 国产精品 | 黄色av免费 | 久久亚洲高清 | 日韩高清在线观看一区 | 欧美成人午夜电影 | 蜜桃av一区 | 欧美伊人| 日韩人妻无码精品久久免费 | 熟女俱乐部一区二区 | 午夜在线看 | 在线观看污污网站 | 日本91在线 | 超级砰砰砰97免费观看最新一期 | www.xxx.国产| av一级黄色片| 色视频在线观看 | 综合影院 | 男女av在线 | av视| 91xxx在线观看| 天天摸天天插 | 欧美精品偷拍 | 国产又爽又黄的激情精品视频 | 日韩精品一区二区在线 | 韩国理论午夜 | 国产调教| 极品少妇在线 | 涩涩涩涩涩涩涩涩涩 | 女同vk | 欧美激情精品久久久久久变态 | 天天舔天天爽 | 蜜芽一区二区 | 国产伦精品一区二区 | 绯色av一区二区 | 国产女人爽到高潮a毛片 | www.欧美日韩 | 亚洲无人区码一码二码三码的含义 | 久久综合久久鬼 | 欧美男人又粗又长又大 | 国产二区视频在线观看 | 欧美在线视频观看 | 国产最爽的乱淫视频国语对白 | 国产成人av一区二区三区在线观看 | 中文字幕精品三区 | 校园sm主奴调教1v1罚视频 | 国产又粗又黄视频 | 东北少妇高潮抽搐 | 激情xxx| 日韩美女三级 | 国产成人免费网站 | 99精品久久久久久 | 国产麻豆久久 | 婷婷综合一区 | 国产亚洲欧美在线视频 | 久草免费在线视频观看 | 男人的天堂免费av | 暗呦丨小u女国产精品 | 小妹色播| 国产一级在线观看视频 | 久久久久久9999 | 插插插日日日 | 奇米狠狠777 | 成年网站免费观看 | 爱视频福利网 | 医生强烈淫药h调教小说视频 | 波多野结衣一二区 | 韩日欧美| 女人扒开腿让男人桶爽 | 国产精品夜夜爽张柏芝 | 视频一区 中文字幕 | 一区二区久久久 | 五月av综合av国产av | 日本老年老熟无码 | 国产一区二区三区免费观看视频 | 午夜视频免费观看 | 精品午夜福利在线观看 | 日韩亚洲一区二区 | 亚洲xx站| 日本一级理论片在线大全 | 进去里片欧美 | 久久人人爽人人 |