rosen 发表于 2013-1-27 05:37:54

MapMe(翻译)

简介

本项目基于Davanum Srinivas开发的BrowseMap,BrowseMap是一个为Android开发的Google Maps浏览器,能提供:


[*]在Android上浏览Google Maps
[*]地图的放大和缩小
[*]跟随鼠标移动(在真实设备上应该是触摸屏)
[*]交通和卫星视图之间转换
[*]定位

(这样的地图应用程序基础功能实际上已经在Android上实现了)

但是MapMe在这些基础功能之上提供了不少新特性,这都得感谢db4o对象持久引擎:


[*]把位置信息登记到db4o(完整的地图持久化,包括缩放级别以及卫星交通视图)
[*]浏览书签列表
[*]编辑书签
[*]从书签中导航到地图上某个位置
[*]根据当前GPS所报告的位置居中显示地图
屏幕截图

想看应用程序是如何运作的,你可以观看在YouTube上的MapMe视频、从一个外部服务器下载高分辨率视频(30 Mb)或下面的屏幕截图:

db4o总部(卫星+交通视图)

http://developer.db4o.com/ProjectSpaces/download.ashx/MapMe/New-1.Png

MapMe主菜单:

http://developer.db4o.com/ProjectSpaces/download.ashx/MapMe/New-2.Png

建立书签/导航点(navpoint):

http://developer.db4o.com/ProjectSpaces/download.ashx/MapMe/New-3.Png

保存的书签/导航点(navpoint)列表:

http://developer.db4o.com/ProjectSpaces/download.ashx/MapMe/New-4.Png

MapMe是如何运用db4o的

如果你查看源代码(下面有下载),你会发现DB helper类处理了所有的持久化操作(开启、存储、查询、计数数据库),而这一切都不超过80行代码!

这一切都很简单,而且不会丧失性能。让我们来看一些项目中用到的持久化方法。
开启数据库

开启数据库的确简单,并且在必要的时候还能自动生成数据库文件。一旦打开,db4o将锁定数据库文件。
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">public ObjectContainer db(){

      try {

            if(oc == null || oc.ext().isClosed())

                  oc = Db4o.openFile(dbConfig(), db4oDBFullPath(context));

            return oc;

      } catch (Exception e) {

            Log.e(Db4oHelper.class.getName(), e.toString());

            return null;

      }

}

 

private String db4oDBFullPath(Context ctx) {

      return ctx.getDataDir() + "/" + "browsemap.db4o";

}
页: [1]
查看完整版本: MapMe(翻译)