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]