现在的位置: 首页 > 移动开发 > 正文

android LBS的研究与分享(附PPT)

2019年09月13日 移动开发 ⁄ 共 2797字 ⁄ 字号 评论关闭

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

两年前,前公司在做一个陌生人交友的社交软件(比陌陌还早),需要研究LBS的相关工作(这里面主要研究的是Google定位)。。。

一、简要调研结果

       很多LBS软件都使用了第三方的地图API(比如百度,高德地图等等),精确度还可以(多多少少有偏差)

       使用Google自身API的话,位置精确度更低(GPS,WIFI定位时,google的卫星数据是正确的,但是在天朝之下,也许是为了安全考虑,你懂的。。。所以国家会要求地图数据提供商进行偏移。。。所以情况是拿到定位的数据后,卫星模式显示正常,地图模式有偏差—拿到真实的位置显示在地图上时却有个东南方向的偏差),要想位置更加精确,就需要个纠偏算法,也就是还原算法了。所以如果你的应用想用Google定位的话,你需要有个纠偏算法。

       LBS的软件就不说了,哪个社交软件没有位置。。。

二、定位方式对比

1.GPS定位

2.WIFI定位

3.基站定位

4.三种定位方式对比


三,研究体会

1.开发者注意

   开发者在不用的电脑上跑同一套程序(api key只是在某一台电脑上申请的)时,出现只有网格没有地图数据的情况,原因是debug.keystoreapi
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 可用于查询附近商家信息或者其他感兴趣的地点信息。

5.Google Static Maps API :可用于获取自定义位置图片.


4.1 Google Geocoding API

  Google Geocoding API的使用有限制,即,每天2,500个地理位置查询请求。(Google
Maps API Premier
用户每天最多可执行100,000个请求
。)强制执行此限制是为了防止滥用和/或重复使用GoogleGeocoding
API
。以后可能对此限制进行更改,而无需另行通知。此外,我们还强制设定了请求速率限制,以防滥用此服务。如果您超过了24小时的限制或者滥用此服务,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

Google Directions API 的使用受每天2500路线请求的查询限制。单个路线请求可以包含多达8个中间路标。  Google
MapsPremier
客户每天最多可以查询100,000个路线请求,且在每个请求中最多可以使用23个路标。


详细:http://code.google.com/intl/zhCN/apis/maps/documentation/directions/#TravelModes


4.3   Google Elevation API

使用 GoogleElevation API时,每天的海拔位置查询请求不得超过25,000。请注意,在任意给定查询中,您可以请求多个位置的海拔数据,这些会算作单独的查询。单个请求中最多可查询512个位置。强制执行此限制是为了防止滥用和/或重复使用GoogleElevation
API
。以后可能对此限制进行更改,而无需另行通知。此外,我们还强制设定了请求速率限制,以防滥用此服务。如果您超出了24小时限制或以其他方式滥用此服务,则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.Google Static MapsAPI可以用于获取位置缩略图的图片)

 Google StaticMaps服务根据通过标准HTTP请求发送的网址参数来创建您的地图.

使用 Google Static Maps API时,每位查看者每天的唯一(不同)图片请求不得超过1000。由于此限制是按“查看者”规定的配额,因此大多数开发人员无需担心超出其配额。此外请注意,一般情况下对相同图片的请求,只会将第一次计入该限制次数,其他的重复请求不会计算在内。

详细:http://code.google.com/intl/zh-CN/apis/maps/documentation/staticmaps/


PPT资源地址:http://download.csdn.net/detail/zz7zz7zz/6391441

       代码地址:http://download.csdn.net/detail/zz7zz7zz/6478701

抱歉!评论已关闭.