赞
踩
由于公司业务需求,需要给设备加上电子围栏功能,目前的解决方案是设备定期上传当前所处位置给后台,由后台判定是否超出电子围栏范围。
前期测试时一直使用的是高德提供的定位服务,但是最近高德通知禁止使用高德的服务进行商业运营获利,如果使用到了高德的服务,则必须支付商业授权费用。
由于某些原因,领导不想付钱,只想免费使用,所以便有了这篇文章。
安卓原生API提供了获取定位的方法,一般有两种渠道:使用GNSS定位(即GPS、北斗等)、使用网络定位(基站、wifi等)。
GNSS无需多说,直接使用卫星定位,优点是定位精确,无需网络。缺点是只能在室外开阔地带使用,且没有网络辅助的话搜星速度慢。
网络定位则是使用基站,WIFI,蓝牙等定位,优势是定位速度快,可在室内使用;缺点是必须联网,且需要有数据库支持,因为网络定位的原理是通过搜索附近的基站、WIFI、蓝牙名称等信息和已有数据库比对来判断当前所处的大致位置。
安卓其实免费提供了 Google 自己的数据库,但是,使用这个数据库需要 Google Server 的支持,众所周知,国内安卓设备几乎没有自带 Google Server 的,就算用户自己安装了,由于众所周知的原因,也无法正常使用。
所以其实对于国内设备来说,原生能够使用的定位方案只有 GNSS 了。
好巧不巧的,我司项目恰恰大多数时候都是需要在室内定位,所以仅有 GNSS 是远远不够的。
只能寻求第三方数据库或定位解决方案。
综上所述,本文对比仅针对国内设备且有室内定位需求的商用用户。
因为如果是非国内用户,直接无脑用安卓原生API即可;
如果无室内定位的需求的国内用户,直接使用GNSS即可。
如果既是国内用户又有室内定位需求,但是是非商用,可以直接免费使用高德、百度、腾讯三巨头提供的定位服务。
国内定位服务商的优势是数据精准,无网络问题。
非商用可以免费无限制使用。
如果是商用或有任何盈利行为则需要购买商业授权,商业授权费用:
50,000 元/年
链接:
2021年1月1日起,华为每月为每位开发者提供CNY¥2398代金券免费使用,用于定位、地图、位置服务,每月代金券仅限当月使用。
室外高精度
仅支持部分地区(深圳市、广州市、苏州市、杭州市、重庆市、成都市、天津市、东莞市)
网络定位(SDK for Android)
免费
网络定位(API)
IP定位(API)
室内定位(SDK for Android)
链接:华为
使用国外服务商定位可能不精准,且可能存在网络问题
链接:Google mao
谷歌搜索排名最靠前的服务商
需要信用卡验证后才能使用以下免费资源,否则只能每月 1000 次免费调用
链接:here
老牌定位服务商,被高通收购了
付费计划需要定制
链接:SkyHook
群友推荐的服务商
仅使用定位服务无需收费。
但是定位服务数据来自:
也就是说,只是封装了系统API,并没有自己的数据库
链接:mapbox
事先声明,以上数据可能具有时效性,且只是我自己在寻求解决方案时找到的几家服务提供商。读者具体使用时还需要结合自己需求甄别判断。
经过上述对比,我最终选择了使用华为的定位服务。
因为对于我的需求,华为提供了免费的可商用的服务。
且经过我的实测,仅使用网络而不配合 GNSS 时,华为定位与高德定位的误差在可接受范围内。
原文首发于我的博客:Likehide
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。