[置顶] android LBS的研究与分享(附PPT)
早上起床后想想以前的工作有什么可以分享的。。。
两年前,前公司在做一个陌生人交友的社交软件(比陌陌还早),需要研究LBS的相关工作(这里面主要研究的是Google定位)。。。
一、简要调研结果
很多
LBS
软件都
使用
了第三方的地图
API
(比如百度,高德地图等等),精确度还可以(多多少少有偏差)
;
使用Google自身API的话,位置精确度更低(GPS,WIFI定位时,google的卫星数据是正确的,但是在天朝之下,也许是为了安全考虑,你懂的。。。所以国家会要求地图数据提供商进行偏移。。。所以情况是拿到定位的数据后,卫星模式显示正常,地图模式有偏差—拿到真实的位置显示在地图上时却有个东南方向的偏差),要想位置更加精确,就需要个纠偏算法,也就是还原算法了。所以如果你的应用想用Google定位的话,你需要有个纠偏算法。
LBS的软件就不说了,哪个社交软件没有位置。。。
二、定位方式对比
1.GPS定位
2.WIFI定位
3.基站定位
4.三种定位方式对比
三,研究体会
1.开发者注意:
开发者在不用的电脑上跑同一套程序(api key只是在某一台电脑上申请的)时,出现只有网格没有地图数据的情况,原因是debug.keystore与api key没有配对(不同电脑debug.keystore不一样,对应api key也不一样),当然正式发布不会出现这种情况(都是用正式的keystore打包)。
2.定位的优先级别:
室外定位 :GPS > WIFI >基站
室内环境:WIFI>基站>GPS
3.请使用Google Geocoding API (V3),请注意,原来的GoogleGeocoding API V2已经弃用。
即使V2某些API现在仍然可以用,但是强烈要求使用V3 API.
4.五个主要的API
1.Google Geocoding API:主要是用于地址解析和反向地址解析。
2. Google Directions API:使用HTTP请求计算多个位置间路线的服务。
3.Google Elevation API:查询地球上位置的海拔数据。
4.Google Places API :可用于查询附近商家信息或者其他感兴趣的地点信息。
.Google Static Maps API :可用于获取自定义位置图片.
4.1 Google Geocoding API
小时的限制或者滥用此服务,Google Geocoding API可能会暂停为您服务。如果您继续无视这个限制,将会阻止您对GoogleGeocoding API的访问。
该api包括四部分:
1.地址解析
2.反向地址解析
3.视角偏向
4.区域偏向
详细: http://code.google.com/intl/zhCN/apis/maps/documentation/geocoding/#Viewports
4.2 Google Directions API
个路标。
详细:http://code.google.com/intl/zhCN/apis/maps/documentation/directions/#TravelModes
4.3 Google Elevation API
使用 GoogleElevation API时,每天的海拔位置查询请求
小时限制或以其他方式滥用此服务,则Google Elevation API可能会临时停止运行。如果您继续无视这个限制,将会阻止您对Google Elevation API的访问。
不得超过
25,000
次
对于单点查询,Google Elevation API会尽可能地传回精确度最高的数据。对于包含多个位置的批量查询,传回的数据精度可能会比较低,尤其是当位置比较分散时,因为过滤掉了某些数据。
详细:http://code.google.com/intl/zh-CN/apis/maps/documentation/elevation/
4.4Google Places API(可以用于地商家和感兴趣地点的信息)
注意:
想要使用 Google Places API的开发人员应填写GooglePlaces API申请表。
要使用Google Places API,您必须首先请求GoogleMaps API客户端ID和加密密钥(用于对请求网址进行签名)。有关如何对网址请求进行签名的信息,请参见网络服务API主页中的网址身份验证文档。
提供两个基本的位置请求:一个是位置搜索请求,另一个是位置详情请求。通常,位置搜索请求用于传回候选匹配项,而位置详情请求则用于传回位置的更为具体的信息。
详细:http://code.google.com/intl/zh-CN/apis/maps/documentation/places/
4.5 Google Static MapsAPI(可以用于获取位置缩略图的图片)
Google StaticMaps服务根据通过标准HTTP请求发送的网址参数来创建您的地图.
使用 Google Static Maps API时,次。由于此限制是按“查看者”规定的配额,因此大多数开发人员无需担心超出其配额。此外请注意,一般情况下对相同图片的请求,只会将第一次计入该限制次数,其他的重复请求不会计算在内。
详细:http://code.google.com/intl/zh-CN/apis/maps/documentation/staticmaps/
PPT资源地址:http://download.csdn.net/detail/zz7zz7zz/6391441
[置顶] android LBS的研究与分享(附PPT)的更多相关文章
- [置顶] Android开发笔记(成长轨迹)
分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...
- [置顶] Android AlarmManager实现不间断轮询服务
在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一 ...
- [置顶] android 心跳包的分析
android 心跳的分析 最近在做一个项目中用到了心跳包的机制,其实就是传统的长连接.或许有的人知道消息推送的机制,消息推送也是一种长连接 ,是将数据有服务器端推送到客户端这边从而改变传统的“拉”的 ...
- [置顶]
Android 状态栏那些小坑?
背景:因为之前老板上次问我我们的app能不能自定义上面的状态栏我说可以啊!当时没管,今天试了下果然很多坑,之前github上也有很多大佬写了一个开源库有兴趣的可以点进去看下支持DrawLayout沉侵 ...
- [置顶] Android 2016新技术
版权声明:分享技术,传播快乐.如果本博客对你有帮助,请在我的博客首页为我打赏吧! 2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向. K ...
- [置顶] [Android源码分析]inquiry result引起的上层变化分析
在上一篇文章中,我们详细分析了android是如何解析蓝牙反馈上来的搜索到的设备信息,本文将会继续分析这些信息到了上层之后是如何处理. 8.inquiry result引起的上层变化 我们知道inqu ...
- [置顶] Android系统访问控制之Smack安全策略设计与实现
1. 制定smack规则 “Zygote”进程由init进程创建,它负责创建系统服务进程“systemserver”.“radio”进程和APP进程.其中“radio”进程的uid是1001,它能够实 ...
- [置顶] Android访问控制系统测试与评估
5.1实验方案 通过以上章节,本文阐述了目前Android平台上的恶意软件以“隐私窃取”和“恶意扣费”类为主,本研究课题访问控制的目标也正是阻止恶意软件“隐私窃取”和“恶意扣费”的行为,因此,本实验方 ...
- [置顶] Android四大组件之BroadcastReceiver
Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI ...
随机推荐
- jmeter linux使用经验小结
1. 确认务必安装了JDK,并且把路径配置OK.否则执行会报错. 2. 当做负载机时,在hosts 配置上 你的ip 你的hostname 或者使用./bin/jmeter-server ...
- Android handler 报错处理Can't create handler inside thread that has not called Looper.prepare()
问题: 写了一个sdk给其他人用,提供一个回调函数,函数使用了handler处理消息 // handler监听网络请求,完成后操作回调函数 final Handler trigerGfHandler ...
- Import data from SQLServer with Sqoop
author: luciuz date: 2013/11/15 -------------------------------------------------------------------- ...
- 函数xdes_find_bit
使用方法 free = xdes_find_bit(descr, XDES_FREE_BIT, TRUE,hint % FSP_EXTENT_SIZE, mtr); /**************** ...
- bzoj2749
根绝欧拉函数的计算式,欧拉函数次方每次就是不断把2消掉,并把其他质因子不断变出2,最终弄成1显然我们先预处理每个数会被弄出多少个2出来,次方=弄出来的2的总数-[一开始是否有2](因为一开始没2的话是 ...
- 了解SQL Server锁争用:NOLOCK 和 ROWLOCK 的秘密
关系型数据库,如SQL Server,使用锁来避免多用户修改数据时的并发冲突.当一组数据被某个用户锁定时,除非第一个用户结束修改并释放锁,否则其他用户就无法修改该组数据. 有些数据库,包括SQL Se ...
- WMS
Web地图位置服务 Web地图服务(Web map service)利用具有地理空间位置信息的数据制作地图.其中将地图定义为地理数据可视的表现.这个规范定义了三个操作:GetCapabitities返 ...
- fcitx中文输入法
Ubuntu自带的输入法不太尽如人意思,用起来也不方便,我在Ubuntu和FC中都是用Fcitx,很好用! 安装配置如下: 1. 安装 fcitx sudo apt-get install fcitx ...
- Velocity资源
这里有非常多的资源和示例提供给程序员,我们推荐您查阅我们提供的示例.文档和源代码.下面是一些非常有用的资源列表: 用户和开发者社区:可以通过mail-lists加入我们.mail-lists网页地址: ...
- 关于this的小总结
关于对this目前有几点小理解 ①this指向调用它的元素.就是谁调用它,它就指向谁. ②可以通过call()和apply()改变this的指向 ③setInterval和setTimeout中的th ...