Java ME引路蜂地图开发示例:离线地图示例
2012-06-26 09:19
441 查看
在手机上,离线地图包一般放在SD卡上,然后通过文件读取。这里为简单起见,将离线放在例子的资源目录中和应用编译在一起。实际应用中请单独存放这些地图包。引路蜂地图开发包支持同时读取多个地图包,这是通过MapTiledZone类和MapTileStreamReader类来完成的。每个地图包对应于一个MapTiledZone,地图包对每张地图建立的索引以加速图片检索将记录地图包存放的区域和缩放级别。而类MapTileStreamReader提供了管理这些地图包的方法.
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2011/01/20110129009.png)
World03.map 存放了1-4级世界地图。MapTileManager 内部定义一个MapTileStreamReader ,如果设置了本地地图,MapTileManager会先从本地读取,如果本地没有需要图片,然后再从地图服务器上下载。可以使用MapTileStreamReader的addZone 方法添加多个地图包,地图包可以有重叠的区域,这时添加的先后顺序对结果就会影响,如果有多个,则取第一个。
离线地图工具参见:离线地图生成工具结构图 和
离线地图生成工具使用方法。
//------------------------------------------------------------------------------ // COPYRIGHT 2010 GUIDEBEE // ALL RIGHTS RESERVED. // GUIDEBEE CONFIDENTIAL PROPRIETARY ///////////////////////////////////// REVISIONS //////////////////////////////// // Date Name Tracking # Description // --------- ------------------- ---------- -------------------------- // 16SEP2010 James Shen Initial Creation //////////////////////////////////////////////////////////////////////////////// //--------------------------------- PACKAGE ------------------------------------ package com.pstreets.gisengine.demo.midp; //--------------------------------- IMPORTS ------------------------------------ import com.mapdigit.gis.geometry.GeoLatLng; import com.mapdigit.gis.raster.MapTileStreamReader; import com.mapdigit.gis.raster.MapTiledZone; import com.mapdigit.gis.raster.MapType; import com.pstreets.gisengine.demo.MapDemoMIDP; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import javax.microedition.lcdui.Display; //[------------------------------ MAIN CLASS ----------------------------------] //--------------------------------- REVISIONS ---------------------------------- // Date Name Tracking # Description // -------- ------------------- ------------- -------------------------- // 16SEP2010 James Shen Initial Creation //////////////////////////////////////////////////////////////////////////////// /** * stored map demo for Guidebee Map API on MIDP platform. * <hr><b>© Copyright 2010 Guidebee, Inc. All Rights Reserved.</b> * @version 1.00, 16/09/10 * @author Guidebee Pty Ltd. */ public class StoredMapMIDP extends MapDemoMIDP { MapTileStreamReader localMapTileFileReader; public void startApp() { init(); InputStream is = this.getClass().getResourceAsStream("/world03.map"); byte[] buffer = null; try { buffer = new byte[is.available()]; is.read(buffer); is.close(); } catch (IOException ex) { ex.printStackTrace(); } ByteArrayInputStream bais = new ByteArrayInputStream(buffer); MapTiledZone mapTiledZone = new MapTiledZone(new DataInputStream(bais)); localMapTileFileReader = mapTileDownloadManager.getInteralMapTileStreamReader(); localMapTileFileReader.addZone(mapTiledZone); //you can add more store map package here use addZone localMapTileFileReader.open(); GeoLatLng center = new GeoLatLng(-31.948275, 115.857562); map.setCenter(center, 3, MapType.GOOGLEMAP); Display.getDisplay(this).setCurrent(canvas); } public void destroyApp(boolean unconditional) { localMapTileFileReader.close(); } }
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2011/01/20110129009.png)
World03.map 存放了1-4级世界地图。MapTileManager 内部定义一个MapTileStreamReader ,如果设置了本地地图,MapTileManager会先从本地读取,如果本地没有需要图片,然后再从地图服务器上下载。可以使用MapTileStreamReader的addZone 方法添加多个地图包,地图包可以有重叠的区域,这时添加的先后顺序对结果就会影响,如果有多个,则取第一个。
离线地图工具参见:离线地图生成工具结构图 和
离线地图生成工具使用方法。
相关文章推荐
- Java ME引路蜂地图开发示例:选择地图服务
- Java ME引路蜂地图开发示例:地图平移
- Java ME引路蜂地图开发示例:IP地址查询
- Java ME引路蜂地图开发示例:本地查询
- Java ME引路蜂地图开发示例:放大、缩小
- Java ME引路蜂地图开发示例:第一个地图应用
- Java ME引路蜂地图开发示例:设置地图类型
- Android引路蜂地图开发示例:离线地图示例
- Java ME引路蜂地图开发示例:地址查询
- Java ME引路蜂地图开发示例:路径查询
- Java ME引路蜂地图开发示例:地址反编码
- Java ME引路蜂地图开发示例:叠加自定义图层
- LWUIT引路蜂地图开发示例:地图平移
- 地图的开发研究--基于openlayers+geoserver+tomcat的离线地图--本地.shp地图
- Blackberry引路蜂地图开发示例:叠加自定义图层
- [转]Net Framework引路蜂地图开发示例
- Android引路蜂地图开发示例:地址反编码
- LWUIT引路蜂地图开发示例:第一个地图应用
- LWUIT引路蜂地图开发示例:地址反编码
- Windows Mobile引路蜂地图开发示例:二维图形库