关于Android引路蜂地图应用源码的简单说明

Organic Maps开源地图APP实战:从零搭建Android/iOS离线导航(附完整源码解析) 本文详细解析了如何基于Organic Maps开源项目从零搭建Android/iOS离线导航系统。内容涵盖开发环境配置、核心架构设计、离线地图数据处理、跨平台开发技巧及性能优化策略,帮助开发者掌握地图APP开发全流程,特别适合需要离线地图功能的移动应用开发场景。 阅读详情

前面完整的Android引路蜂地图应用源码下载 提供了源码下载,这里对这个项目做个简单的说明以方便阅读。

整个应用代码量在4000行左右,不算很大,下面是对代码中主要Package的说明:

文件名 空行 注释 代码行 说明
AboutActivity.java 13 4 47 关于软件说明
app\GNavigatorApplication.java 27 23 93 主应用类
app\SessionInfo.java 9 3 11 保持一些全局变量
app\SharedMapInstance.java 13 38 18 保存RasterMap类实例
app\SharedSearchResults.java 12 0 22 保存查询结果
database\DatabaseAssistant.java 42 63 122 用于数据库访问,用来管理设备,这部分可以不看
database\DBAdapter.java 27 126 77
database\DBMapper.java 4 38 7
database\DeviceDBMapper.java 20 86 130
database\DeviceLocationHistoryDBMapper.java 19 56 60
database\PersistentFacade.java 28 168 67
dataobject\Device.java 14 0 15 设备定义,设备命令,这部分可以不看
dataobject\DeviceCommand.java 7 0 17
dataobject\DeviceLocationHistory.java 5 0 7
device\AddDeviceActivity.java 14 1 70 软件可以用来跟踪其他设备或者报告设备当前位置,这部分可以不看
device\DeviceCommandListActivity.java 39 4 202
device\DeviceControlTabActivity.java 16 1 80
device\DeviceInfoActivity.java 8 1 49
device\DeviceLocationHistoryListActivity.java 19 1 81
device\ManageDeviceListActivity.java 44 4 208
drawing\AndroidFont.java 9 27 17 和Android平台相关的引路蜂图形接口实现
drawing\AndroidGraphics.java 20 150 57
drawing\AndroidGraphicsFactory.java 10 83 23
drawing\AndroidImage.java 20 114 65
gis\FileMapTiledZone.java 17 23 43 用来访问离线地图文件
GNavigatorActivity.java 82 31 516 主Activity
GuidebeeMapView.java 52 25 301 地图View,可以自定义并扩展,支持Gesture缩放等
location\LocationService.java 54 55 90 GPS服务
mapmode\MapModeListActivity.java 16 11 50 选项地图模式界面
routing\RouteDetailActivity.java 52 34 274 显示详细路径
routing\RoutingActivity.java 26 1 159 路径查询界面
search\SearchResultListActivity.java 41 25 246 查询结果
search\SearchSuggestionProvider.java 2 0 9 查询提示
settings\SettingsActivity.java 19 26 86 软件设置界面
sms\DeviceMessage.java 4 0 5 控制设备的短消息处理,这部分可以不看
sms\DeviceMessageCenter.java 7 0 18
sms\DeviceMessageProcessor.java 45 1 209
sms\SmsMessageReceiver.java 13 15 28
ToolbarButton.java 36 1 259 工具条自定义View

其中和Device相关的部分,包database, dataobject, device, sms 部分可以跳过不需要看,这部分和地图API使用关系不大,主要用来监视GPS设备或其它手机的位置。

drawing 包实现了地图API中和图形系统相关接口的Android平台上实现 ,引路蜂地图开发包中Gis.Drawing 类定义了几个抽象类或接口,对不同平台的图形系统进行了抽象。这些绘图的接口不同,如果在引路蜂地图开发包直接引用这些类方法,这样不同平台就会需要编译不同的开发包。通过抽象处理,引路蜂地图开发包并直接调用平台相关的图形类方法。而是通过 开发包 + 平台相关图形系统实现的方法,就可以实现跨平台.具体可以参见图形子系统。

GuidebeeMapView 主要用来显示地图,这个给出的是一个参考实现,支持触摸屏平移,事件你可以把地图放在任何可以显示Image对象的控件上,添加你自己的Logo,支持MultiTouch 缩放等,本身是个自定义View (为View的子类),你可以自由扩展其功能。

FileMapTiledZone 用来支持从文件读取离线地图,这部分代码可以不需修改应用到你自己编写的引路蜂地图应用中。

应用程序框架基于RoboGuice 以简化代码,关于RoboGuice的使用可以参见本博客 的Android RoboGuice 使用指南。

搜索使用Android平台的Search Framework。可以参见

App/Search/Invoke Search
App/Search/Query Search Results

再看一下项目的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.pstreets.navigator"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="4" />

    <application
        android:name=".app.GNavigatorApplication"
        android:icon="@drawable/navigator"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <activity android:name=".GNavigatorActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <meta-data
                android:name="android.app.default_searchable"
                android:value=".search.SearchResultListActivity" />
        </activity>
        <activity
            android:name=".search.SearchResultListActivity"
            android:launchMode="singleTop" >
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />
        </activity>
        <activity
            android:name=".AboutActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".mapmode.MapModeListActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".routing.RoutingActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".routing.RouteDetailActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".device.ManageDeviceListActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".device.AddDeviceActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".device.DeviceControlTabActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".device.DeviceCommandListActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".device.DeviceInfoActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".device.DeviceLocationHistoryListActivity"
            android:launchMode="singleTop" >
        </activity>
        <activity
            android:name=".settings.SettingsActivity"
            android:launchMode="singleTop" >
        </activity>

        <receiver
            android:name=".sms.SmsMessageReceiver"
            android:enabled="true" >
            <intent-filter android:priority="1000" >
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>

        <provider
            android:name=".search.SearchSuggestionProvider"
            android:authorities="com.pstreets.navigator.search.SearchSuggestionProvider" />
    </application>

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_OWNER_DATA" />
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

</manifest>


使用的permission 需要有INTERNET(地图API需要访问网络) ,WRITE_EXTERNAL_STORAGE (离线地图需要访问SD卡)其它权限可以根据需要添加。
最后看一下软件的项目目录结构:

项目引用三个库,其中libgisengine.jar 为引路蜂地图API,其它两个为roboguice 库。 支持中英文两种资源 values-zh-rCN 为中文string 资源。



离线地图APP 以下是一款功能完整的离线地图APP源码,核心包含**离线地图下载/管理**、**离线定位**、**POI搜索**、**路径规划**、**地图标注/测距**等核心功能,基于百度地图SDK实现(支持高德地图SDK替换),兼容Android 5.0+,完全支持无网络环境下的地图操作。// 城市ID(百度地图城市编码)│ ├── OfflineMapManager.java // 离线地图管理(下载/删除/更新)// 离线地图根目录(SD卡/Android/data/包名/offline_map/) 阅读详情

相关推荐

Map-App:使用mapbox的地图应用程序

地图应用 安装和设置说明 克隆该存储库。 您将需要在计算机上全局安装node和npm 。 安装: npm install 要启动服务器: npm start 要访问应用程序: localhost:3000/

完整的Android引路蜂地图应用源码下载

这里提供一个比较完整的引路蜂地图Android应用源码下载,基本涵盖了引路蜂地图API的所有功能,包括离线地图,路径查询,地址查询,地图模式选择等。设备上在Galaxy Nexus 和 Nexus S ,Nexus 7 Tablet 测试通过,可以做为你学习或开发引路蜂地图应用的参考。完整的Android引路蜂地图应用源码 下载主界面搜索 ,包括: 地址查询, 本地查询,IP地图查询,经纬度查询查

引路蜂移动软件 7644

安卓地图源代码

基于百度地图开发的安卓开发源代码供给大家分享,里面的AK需要大家使用自己在百度申请的。

开源引路蜂地图开发包

由于时间上的问题,已经有很长时间没有对引路蜂地图开发添加功能,因此决定对引路蜂地图开发包,此外征召有兴趣的开发人员共同开发引路蜂地图包 (联系Email:james.shen@guidebee.com)开源代码经过整理,将逐步投放在github ,目前采用GPL 开源协议。GitHub 地址 为 https://github.com/guidebee/  下引路蜂地图包分为Java和.Net版本,

引路蜂移动软件 4945

基于Android的百度API旅游地图应用开发(源码+文档+api包).rar

近年来,随着安卓智能手机的普及,各种各样的 Android 应用如雨 后春笋般涌现出来,本应用基于百度地图 API 接口,利用百度地图 提供的 API 开发包开发,旨在为用户提供地图浏览,地址搜索,路 线查找,GPS 定位等一系列功能服务

【Android应用源码】高德地图.zip

资源说明: 1:本资料仅用作交流学习参考,请切勿用于商业用途。 2:一套精品实用安卓应用APP源码资源,无论是入门练手还是项目复用都超实用,省去重复开发时间,让开发少走弯路!

引路蜂地图应用GNavigator完整源码

GNavigator是 曾经发布在Nokia Ovi Store的Java ME应用,基本使用到了引路蜂地图API的所有功能,尽管这是一个基于LWUIT的应用,使用Java语言开发,其它平台也可以参考这个应用的代码。 总代码量大约为24000行,其中纯代码为12000行。 几个用户界面如下: 包括导航演示(可以连接GPS) 代码下载 ,用户手册 ,为Netbean 项目。

引路蜂移动软件 5368

Frida实战:高效dump Android内存中的so文件与修复技巧

本文详细介绍了使用Frida工具dump Android内存中已解密so文件的实战技巧。针对加固应用静态分析失效的痛点,文章提供了从环境搭建、使用frida_dump脚本自动化抓取内存数据,到利用SoFixer工具修复ELF文件结构的完整流程,帮助逆向分析人员高效获取可分析的so文件。

tt34567的博客 527

Android引路蜂地图开发示例:基本知识

在正式介绍Android引路蜂地图开发包示例前,有必要先对一些通用的知识进行说明。 1.首先是开放环境。Android 推荐的开发环境是Eclipse,我们的例子也就以Eclipse作为开发IDE。 2.添加Android引路蜂地图开发包库。打开Android属性窗口,添加External JARs。把libgisengine.jar 添加到项目中,如下图所示。 一般可以把libgise

引路蜂移动软件 5120

RC模型车多电机驱动方案:从电调PWM原理到四电机安全连接实战

在电机控制领域,PWM(脉冲宽度调制)是实现精确调速的核心技术。其原理是通过调节固定周期内高电平的脉宽来编码控制指令,进而驱动电子调速器(电调)改变输出功率。这项技术对于需要多电机协同工作的场景,如RC模型车的差速转向或重型负载驱动,具有关键价值。它能实现动力的精细分配与同步,提升车辆的可控性与通过性。在实际应用中,为确保系统稳定,必须关注电流分配与信号同步问题。例如,通过为每个电机配备独立电调并采用信号并联(Y线)的方式,可以构建可靠的四电机驱动系统。这种方案能有效避免因单个电调过载或电机反电动势不一致导

weixin_30664615的博客 381

Astah 9.0升级步骤(Widnows/Mac OS)

Astah Professional是一款全新的轻量级UML建模工具。软件集思维导图和UML建模于一体,采用100%纯JAVA构建, 兼容性强,不仅能够实现分布式建模、项目合并,还能够实现和其它建模工具的交互。

tequiero777的博客 2824

引路蜂地图API:Java ME地图应用开发环境

Java ME引路蜂地图开发实例基本上都是以Netbean 6.x 作为开发的IDE,这里先说明一下如何在Netbean 项目中添加引路蜂地图开发库。引路蜂Java ME开发库可以同时用于MIDP,LWUIT和Blackberry。其中MIDP,LWUIT应用都可以使用Netbean做为首选IDE。Blackberry应用使用RIM自己的BlackBerry JDE 6.0.0。在后面再做介绍

引路蜂移动软件 4550

从 0 到 1,实战 Power BI 电商销售可视化看板全流程

本文详细介绍了从零开始使用Power BI构建电商销售可视化看板的全流程,涵盖数据准备、建模、可视化设计及高级功能应用。通过实战案例展示如何将复杂销售数据转化为直观图表,帮助电商从业者快速掌握销售趋势、热销产品和用户画像等关键信息,提升数据分析效率。

weixin_29061041的博客 483

Android引路蜂地图开发包

<br />在正式介绍Android引路蜂地图开发包示例前,有必要先对一些通用的知识进行说明。<br /><br /> 1.首先是开放环境。Android 推荐的开发环境是Eclipse,我们的例子也就以Eclipse作为开发IDE。<br /><br /> 2.添加Android引路蜂地图开发包库。打开Android属性窗口,添加External JARs。把libgisengine.jar 添加到项目中,如下图所示。<br /><br /><br /><br />  一般可以把libgisengi

jacky choise 1229

如何把ORCAD 中的修改同步到PADS 中

Generate ECO file(*.eco),eco 文件的默然保存地址是在pads 的。ECO Files (*.eco),接着在文件中找到所生成的eco 文件,找到。再下来是产生eco 文件,先打开old_design.pcb,然后选择。PCB Design 前面的选项选中,意思把当前文件做为原始的比对。安装目录下(可修改eco 文件的保存目录),这里把eco 文件保存。接下来用新生成asc 文件的文件产生新的PCB 文件,新生成。不对新生成的pcb 做任何的修改,直接保存文件,这里把新文件。

智光工作室 993

【CATIA的二次开发38】对象Selection交互选择部分方法介绍01

在CATIA V5的VBA开发中,Selection对象是用户交互的核心组件,用于管理用户在图形区域或特征树中的选择操作。Selection 对象是 CATIA VBA 中的中央交互枢纽,充当用户界面与程序逻辑之间的桥梁。它代表当前在图形区域或特征树中被选中的元素集合,是自动化操作的基础。

学习共勉:不积跬步,无以至千里; 不积小流,无以成江海。 1337

引路蜂地图应用详细解说

今天给大家详细介绍引路蜂地图应用开发,这里提供一个比较完整的引路蜂地图Android应用源码下载,基本涵盖了引路蜂地图API的所有功能,包括离线地图,路径查询,地址查询,地图模式选择等。设备上在Galaxy Nexus 和 Nexus S ,Nexus 7 Tablet 测试通过,可以做为你学习或开发引路蜂地图应用的参考,该应用提供学习使用,不得商业运作等。 主界面 搜索 ,包括: 地址查...

移动开发记录 289

【通信】多径衰落信道的matlab仿真

1 简介 2 部分代码 clearf_c=1e3; %carrier frequency(no modulation)time_1 = (linspace (0, 10, 1000)); %timesignal_in = sin (2 * pi *f_c* time_1); %sine wave plot (time_1, signal_in, 'b');grid on;

qq_59747472的博客 1382
上一篇: 完整的Android引路蜂地图应用源码下载
下一篇: Android ApiDemos示例解析(196):Views->TextSwitcher
引路蜂
博客等级 码龄16年 3122粉丝 711原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值