LBS数据库的架构是怎样的

LBS数据库的架构是怎样的:第一部分为LBS客户端管理部分,主要提供给客户端应用使用,客户端应用调用此部分提供的功能进行位置定位。LocationManager,提供给客户端应用调用,获取位置等信息,同时当有位置信息变化时通知客户端应用。

一、LBS数据库的架构是怎样的

1)第一部分为LBS客户端管理部分,主要提供给客户端应用使用,客户端应用调用此部分提供的功能进行位置定位。

LocationManager,提供给客户端应用调用,获取位置等信息,同时当有位置信息变化时通知客户端应用。

LocationListener,提供给客户端应用注册使用,每个客户端应用对应一个LocationListener,通过LocationManager注册到系统维护的一个位置服务的链表中,当系统中发现有位置信息变化或者其它信息变化时,会通过它通知客户端应用。

GpsStatus,提供给客户端应用获取GPS定位服务的状态。

GeoCoder,提供给客户端应用调用,获取地理编码信息。

2)第二部分为LBS系统服务部分,开机时启动此服务LocationManagerService,一方面负责处理LBS客户端管理提供的定位等功能需求,另一方面启动提供定位功能的功能模块。

3)第三部分为LBS的定位功能服务部分,完成定位服务模块的定位等动能。

GpsLocationProvider,提供GPS定位服务,通过GPS底层模块获取位置信息及状态变化,通知LBS系统服务来获取位置信息及状态变化等。

LocationProviderProxy,提供网路定位服务,会通过ILocationProvider调用LocationProvider提供的定位功能。LocationProvider只是提供了一个抽象的定位服务模块,并没有真正实现定位功能,需要用户去实现继承LocationProvider来完成此功能。

GeocodeProxy,提供地址编码服务,会通过IGeocodeProvider调用GeocodeProvider提供的正反向地址编码功能。GeocodeProvider只提供了一个抽象的反向地址编码服务模块,根据经纬度来获取地址信息,它并没有真正实现反向地址编码功能,需要用户去实现继承GeocodeProvider来完成此功能。

二、LBS目录结构

(1) frameworks/base/services/java/com.android.server/LocationManager.java

提供的系统定位服务类。

(2) frameworks/base/services/java/com.android.server.location/

提供给系统定位服务使用的相关类。

(3) frameworks/base/location/lib/java/com.android.location.provider/

提供的抽象定位服务模块类以及地址编码服务模块类。供用户继续以实现某种定位功能。

(4) frameworks/base/location/java/android.location

提供给客户端使用的定位服务相关类。

来源:https://blog.csdn.net/yingchunhua365/article/details/14118943

延伸阅读

事务隔离级别是什么

事务具有ACID属性,而事务的隔离级别可以不同程度的解决事务并发时可能产生的问题,可以根据不同业务逻辑需求,来选择不同的事务隔离等级,事务隔离等级越高,越能保证数据的一致性,但就更趋近于串行化,降低并发性能,导致效率变低。

文章标题:LBS数据库的架构是怎样的,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/53853

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年6月4日
下一篇 2023年6月4日

相关推荐

  • erp和金蝶有什么区别

    本文将全面解读企业资源规划(ERP)软件和金蝶软件的区别。主要内容分为:1、定义和功能解析;2、应用领域和行业对比;3、使用体验和客户反馈分析;4、价格和成本考量。希望通过详尽的分析,帮助读者理解ERP和金蝶在实际应用中的不同之处,并根据实际需要做出最合适的选择。 1、定义和功能解析 ERP,全称为…

    2023年8月3日
    12100
  • golang 问题 怎么在map中添加数据

    map添加数据只能用键值对赋值的方式,append是向数组里添加数据的,map本身使用map[key]=value这样的表达式即可添加数据,如果有存在的key会覆盖对应的value。在Go Map中,如果我们获取一个不存在的键的值,也是可以的,返回的是值类型的零值。 map是一堆键值对的未排序集合,…

    2023年2月22日
    62600
  • PMP中problem和issue的区别是什么

    区别是:1、问题通常是指在项目执行过程中出现的不确定性、障碍;2、事项是指已经发生或正在发生的事件或情况,可能对项目进展和交付产生实际的影响。Problem是指项目中的潜在或实际的大型障碍,需要高层管理团队参与和决策;而Issue是指项目中的实际的较小问题。 一、问题(Problem) 问题通常是指…

    2023年7月31日
    7200
  • 什么是eRDMA

    eRDMA(Extended Remote Direct Memory Access)是一种网络通信技术,它允许计算机在没有CPU参与的情况下直接从网络中读取或写入内存。这种技术可以提高网络性能,降低延迟,并减少CPU的负载。 一、定义 eRDMA(Extended Remote Direct Me…

    2023年7月28日
    5800
  • 工作流管理系统的核心是什么

    工作流管理系统的核心是“工作流引擎”,又被称为工作流执行部件,它主要提供对工作流定义的解析以及流程流转的支持。基于工作流引擎,企业可以构建客户关系管理系统、运输管理系统、仓库管理系统、财务费用管理系统等复杂业务系统。

    2022年11月15日
    27800
  • seq2seq和VAE有什么区别

    seq2seq和VAE的区别有:1、基本定义与应用;2、模型结构;3、训练目标;4、输出特性;5、应用领域;6、模型复杂性与解释性。其中,基本定义与应用是指seq2seq主要应用于序列到序列的转换任务,而VAE是一种生成式模型,用于数据生成和表示学习。 1、基本定义与应用 seq2seq:即“序列到…

    2023年7月31日
    4700
  • 用例评审的主要内容是什么

    用例评审的主要内容包括:1、测试用例是否按照公司定义的模板进行编写的;2、测试用例的本身的描述是否清晰,是否存在二义性;3、测试用例内容是否正确,是否与需求目标相一致。

    2022年12月27日
    22200
  • C语言、Python、PHP、.net和JAVA的关系是什么

    C语言是一种底层的编程语言,它可以与汇编语言相结合,可以直接操作系统资源。Python、PHP、.NET和JAVA都是高级编程语言,它们都是在C语言的基础上开发的。Python语言的解释器是用C语言编写的,PHP语言的解释器也是用C语言编写的。.NET框架是用C++语言编写的,JAVA虚拟机也是用C…

    2023年3月1日
    17300
  • C++迭代器实质是什么

    C++迭代器是一种让程序员能够访问容器内部元素的对象,它能够访问不同类型的容器,而不需要知道容器的具体实现细节。C++中的迭代器实际上是一个类模板,每个容器都需要定义自己的迭代器类。C++迭代器的应用非常广泛,可以用来遍历容器中的元素,并对容器中的元素进行操作。 C++迭代器是一种让程序员能够访问容…

    2023年3月1日
    19300
  • session和cookie的区别是什么

    cookie与session区别在于:1、对象不同;2、存储数据大小不同;3、生命周期不同;4、存储位置不同;5、数据类型不同;6、安全性不同。其中,定义不同是指cookie是针对每个网站的信息,每个网站只能对应一个,而session是针对每个用户的,只有客户端才能访问。

    2023年2月18日
    1.1K00

发表回复

登录后才能评论
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部