[置顶] 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 ...
随机推荐
- 【Uva 12558】 Egyptian Fractions (HARD version) (迭代加深搜,IDA*)
IDA* 就是iterative deepening(迭代深搜)+A*(启发式搜索) 启发式搜索就是设计估价函数进行的搜索(可以减很多枝哦~) 这题... 理论上可以回溯,但是解答树非常恐怖,深度没有 ...
- Android ExpandableListView使用+获取SIM卡状态信息
ExpandableListView 是一个可以实现下拉列表的控件,大家可能都用过QQ,QQ中的好友列表就是用ExpandableListView实现的,不过它是自定义的适配器.本篇 博客除了要介绍E ...
- wait和waitpid详解
wait的flag参数不是很明确,考虑多个进程同时结束的情况,信号时如何处理的,是否会出现覆盖情况 wait的函数原型是: #include<sys/types.h> #include & ...
- Android-相册效果(图片缩放 自由滑动)
先上图: 很多时候 我们会有这么一个需求: 展示一组图片 每个Item的图片 可以自由拉伸 滑动 焦点不冲突 网上有很多实现方法 通过自定义Gallery和ImageView来实现 个人不是很推荐 在 ...
- Visual Studio原生开发的10个调试技巧(转)
本文由 伯乐在线 - JingerJoe 翻译自 Marius Bancila.转载请参见文章末尾处的要求. [感谢@_La_Isla_Bonita 的热心翻译.如果其他朋友也有不错的原创或译文, ...
- hdu4323Magic Number(dp)
http://acm.hdu.edu.cn/showproblem.php?pid=4323 去年的多校 编辑距离的变形 暴力居然过了 还想了好久别的方法,想得很头疼 #include <ios ...
- 生成Excel錯誤 遠端程序呼叫失敗。 (發生例外狀況於 HRESULT: 0x800706BE)
错误信息:详细信息:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005.网上找到 ...
- c#语言-多线程中的锁系统(一)
介绍 平常在多线程开发中,总避免不了线程同步.本篇就对net多线程中的锁系统做个简单描述. 目录 一:lock.Monitor 1:基础. 2: 作用域. ...
- 【转】使用XCODE 的SOURCE CONTROL 做版本控制 (1)
原文网址:http://it.zhaozhao.info/archives/60469 有一次笔者在开心项目准备尝试新的练习的时候,赫然注意到在选择档案存放位置的时候,下面有个Source Contr ...
- 一步步写STM32 OS【三】PendSV与堆栈操作
一.什么是PendSV PendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它.更详细的内容在<Cortex ...