早上起床后想想以前的工作有什么可以分享的。。。

两年前,前公司在做一个陌生人交友的社交软件(比陌陌还早),需要研究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时,每天的海拔位置查询请求

不得超过
25,000

小时限制或以其他方式滥用此服务,则Google Elevation API可能会临时停止运行。如果您继续无视这个限制,将会阻止您对Google Elevation API的访问。

对于单点查询,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)的更多相关文章

  1. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  2. [置顶] Android AlarmManager实现不间断轮询服务

    在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一 ...

  3. [置顶] android 心跳包的分析

    android 心跳的分析 最近在做一个项目中用到了心跳包的机制,其实就是传统的长连接.或许有的人知道消息推送的机制,消息推送也是一种长连接 ,是将数据有服务器端推送到客户端这边从而改变传统的“拉”的 ...

  4. [置顶] Android 状态栏那些小坑?

    背景:因为之前老板上次问我我们的app能不能自定义上面的状态栏我说可以啊!当时没管,今天试了下果然很多坑,之前github上也有很多大佬写了一个开源库有兴趣的可以点进去看下支持DrawLayout沉侵 ...

  5. [置顶] Android 2016新技术

    版权声明:分享技术,传播快乐.如果本博客对你有帮助,请在我的博客首页为我打赏吧! 2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向. K ...

  6. [置顶] [Android源码分析]inquiry result引起的上层变化分析

    在上一篇文章中,我们详细分析了android是如何解析蓝牙反馈上来的搜索到的设备信息,本文将会继续分析这些信息到了上层之后是如何处理. 8.inquiry result引起的上层变化 我们知道inqu ...

  7. [置顶] Android系统访问控制之Smack安全策略设计与实现

    1. 制定smack规则 “Zygote”进程由init进程创建,它负责创建系统服务进程“systemserver”.“radio”进程和APP进程.其中“radio”进程的uid是1001,它能够实 ...

  8. [置顶] Android访问控制系统测试与评估

    5.1实验方案 通过以上章节,本文阐述了目前Android平台上的恶意软件以“隐私窃取”和“恶意扣费”类为主,本研究课题访问控制的目标也正是阻止恶意软件“隐私窃取”和“恶意扣费”的行为,因此,本实验方 ...

  9. [置顶] Android四大组件之BroadcastReceiver

    Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI ...

随机推荐

  1. linux下如何安装rzsz

    1, 下载包: wget  http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz 2, 解压缩:tar -zxvf rzsz-3.48.tar.gz ...

  2. easyui源码翻译1.32--Draggable(拖动)

    前言 使用$.fn.draggable.defaults重写默认值对象.下载该插件翻译源码 源码 /** * jQuery EasyUI 1.3.2 * *翻译:qq 1364386878 --拖动 ...

  3. 《ArcGIS Engine+C#实例开发教程》第三讲 MapControl与PageLayoutControl同步

    原文:<ArcGIS Engine+C#实例开发教程>第三讲 MapControl与PageLayoutControl同步 摘要:在ArcMap中,能够很方面地进行MapView和Layo ...

  4. spring-boot启动debug信息中non-fatal error解决

    java.lang.ClassNotFoundException: org.springframework.data.web.config.EnableSpringDataWebSupport添加依赖 ...

  5. prim(与边无关,适合稠密的图,o(n^2))---还是畅通工程

    题目1017:还是畅通工程 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1653 解决:838 题目描述:     某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“ ...

  6. 学习笔记-[Maven实战]-第三章:Maven使用入门(1)

    说明:[Maven实战]一书还介绍了怎么样手工创建Maven工程,学习这本书是为了能尽快在工作中使用,就忽略了手工建工程的部分 如果想了解这部分的内容,可以自己看看书 开始: 1.新建一个maven工 ...

  7. java比较器Comparable接口和Comaprator接口

    Comparable故名思意是比较,意思就是做比较的,然后进行排序. 1.什么是comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compar ...

  8. linux移植简介[MS2]

    一:修改Makefile 1添加编译选项,2添加时钟 二:图形化配置(make menuconfig) 此时生成zlmage,  可以跑起来 三:对NandFlash配置,yaffs2 文件系统配置, ...

  9. ActionBar官方教程(3)更改标题处的图片

    Using a logo instead of an icon By default, the system uses your application icon in the action bar, ...

  10. Mysql规范和使用注意点(转)

    命名规范: 1表名,字段名,索引名称使用小写字母,数字采用下划线进行分割 2.表名采用模块名3个缩小字符 '前缀'之后顺序为表明 3.表名,字段名不超过32个字符 4.存储尸体数据的表,名称使用名词, ...