【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

如何在应用中快速稳定地实现 LBS 服务?!

  • 2016-11-04
  • 本文字数:2153 字

    阅读完需:约 7 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

随着移动互联网的发展,人们的衣食住行越来越离不开 LBS(基于位置的服务),如何在自己的应用中快速稳定地实现 LBS 服务也就成为了业内比较关注的话题。

2016 年 10 月 20 日,由 QCon 与高德开放平台联合举办的“高德 LBS 技术专场”于 QCon 上海 2016 分会场顺利举办。会上高德开放平台高级产品经理杨巍、高德开放平台资深研发经理朴春植、高德开放平台技术专家刘魁(骏征) 3 位专家分别从什么是 LBS 服务,为什么要用 LBS 服务,如何快速实现 LBS 服务,如何保证其稳定性几个方面展开了分享。

LBS 服务的定义与意义

LBS 服务是指通过电信移动运营商的无线电通讯网络或外部定位方式,获取移动终端用户的位置信息,在 GIS 平台的支持下,为用户提供相应服务的一种增值业务。它包括两层含义:首先是确定移动设备或用户所在的地理位置;其次是提供与位置相关的各类信息服务,如找到手机用户的当前地理位置,然后为其寻找 1 公里范围内的宾馆、影院、图书馆、加油站等的名称和地址。所以说 LBS 就是要借助互联网或无线网络,在固定用户或移动用户之间,完成定位和服务两大功能。

高德开放平台的主要任务就是将高德地图专业的定位、地图、导航等位置能力和 LBS 服务以 API、SDK 的形式开放出来,供合作伙伴和开发者使用。覆盖领域包括社交媒体、社交出行、物流外卖、新闻资讯等行业。据统计,2015 年下半年到 2016 年上半年高德开放平台与行业用户(只选了比较有代表性的 3 个)共享 LBS 能力的占比分别是:出行 85%;外送 60%;主流社交 80%。

从上图可以看出出行行业的占比最高,其最出色的两个服务是实时路况和个性化导航。那么,LBS 服务如何助力出行?它给我们的生活带来哪些便利呢?杨巍老师结合实际案例分享了《共享出行的 LBS 实践》。

以共享单车为例,LBS 服务可以帮助确定使用者当前的位置及附近的车辆;帮助指引路线,包括步行线路规划指引最佳找车路线(规避“死胡同”、“隔堵墙”等问题,引导用户走最佳的找车路线节约时间)、骑行路线规划提供预估路程和时间(提供短途出行目的地的预估路程,提供到达目的地的预计通勤时间,可根据通勤时间计算预估费用);帮助轨迹纠偏提供真实骑行轨迹;帮助圈出地理围栏,保证运力平稳……

LBS 服务技术实践与经验分享

高德开放平台为 30 万 App 提供了 LBS 服务,拥有大量的 LBS 服务技术实战经验。LBS 覆盖了很多行业,但游戏行业还较为空白,朴春植老师分享了《LBS 与游戏结合实战》,介绍了在游戏行业中如何实践 LBS 服务。

大部分 LBS 相关的开发者都不用关心手机是如何定位的,其实在做移动端优化时,了解定位原理还是非常有用的,比如怎么省电,如何处理高频位置变化的情况。实现定位有以下 3 种方式:第一种是 GPS ;第二种是用基站塔来标记位置;最后一种是通过 Wifi 标记位置。如何选择适合产品需求的定位模式,减少定位频次 (按时间、距离) 呢?详见下图。

分类 类型 精准度 特点 调用方式 GPS GPS/A*GPS 2~10m 准确、耗时长、耗电 定位 SDK+ 系统接口 网站 基站 500~5000m 大致位置 定位 SDK 网站 Wi-Fi 20~200m 较为准确、快速省电 定位 SDK 为什么要说游戏行业?从高德开放平台的数据来看,LBS 在各行业都有所覆盖,唯独缺少游戏行业。以下是朴老师总结的几个 LBS 与游戏相结合的痛点和难点。

在做游戏的时候,需要自定义地添加一个 Render,把每一帧回调。还需要一个重要的相互转换接口,利用它可以在缩放、移动地图的时候,把人物的位置与游戏的位置结合起来,下图提供了主要技术原理。

如何确保 LBS 服务载体平台的稳定性

面对一个开放平台,用户最关心的是什么?

  • 使用简单:API 设计适配多元化应用场景,可扩展性强;
  • 稳定性:崩溃率低,拥有合理的框架、健全的代码扫描 review 机制、自动化;
  • 响应速度:通过网络请求、渲染速度、异步等优化来加快响应速度;
  • 包大小:越小越好;
  • 隐私:编码安全性,数据输入安全(二进制 + AES + RSA),https 对域名进行强校验。

高德开放平台的业务特点是服务稳定性要求高、流量不均匀、流量易出现突增、节假日流量出现高峰。为了满足业务需求,平台采取了哪些措施呢?高德开放平台技术专家刘魁(骏征)分享了《在线服务的流量管控实践》,主要包括在线服务限流和七层负载流量切换(L7)上的业务实践。

服务限流包括集群限流和单机本地限流。集群限流以机房为维度,对 key/cip 和 和同类引擎 QPS 约束。

集群限流的过程中会遇到同步扩容的问题,而这个问题需要单机限流来解决:以单机为维度,对接口或接口组 QPS 约束;精准到 URI 维度,提供默认值。

七层负载切换(L7) 包括手动和自动切换,是结合 DNS 四层切换的一种快速流量切换方案。

L7 切流方式如下图所示,可以通过平台手动切流和自动切流两种方式触发切流,自动互切加锁,手动切流优先,实现实时业务监控。

手动切换是通过平台手动切流,哪块有问题单切哪一块,这样实际上降低了切流的风险。自动切流,是基于业务监控的,它是一个无人职守的方案,适用于无人看管的时候,可以降低服务时长。

最后,刘老师指出,不论服务做得多好,都没有办法保证一定没有问题,一定要有一套完整的报警和容灾措施。

相信通过本专题,您对 LBS 服务一定有了更加深入的理解。篇幅原因,只选了部分内容列入文中,想了解更多请移步 QCon 上海 2016 官网下载讲师完整 PPT,关注 QCon 公众号后期还可以看到精彩视频。

2016-11-04 00:493623

评论

发布
暂无评论
发现更多内容

工作就是解决一个又一个问题

escray

学习 面试

游戏运营方法论

石云升

游戏化运营 运营创新

Python中的global关键字的用法以及如何设置项目级的Global变量

陈磊@Criss

青山不改,绿水长流

escray

学习 面试

3D渲染集群,你了解多少?

华为云开发者联盟

容器 华为云 集群 3D渲染 3D模型

乘风人脸识别来了,企业能得到什么?

ToB行业头条

人工智能 人脸识别 百度大脑

用Emoji解释编程语言中的map、filter、reduce

王坤祥

Python Python PEP

永续合约交易系统源码开发,合约交易所开发

13530558032

云中谁寄锦书来,免费生成一封七夕情书吧

郭旭东

阿里云 七夕 云效

为什么会出现零代码开发平台?

代码制造者

编程语言 低代码 企业信息化 零代码 编程开发

SpreadJS 纯前端表格控件应用案例:实验室信息化管理系统

葡萄城技术团队

从“人居美学”的理念出发,木莲庄酒店很不一样

InfoQ_967a83c6d0d7

Java中的volatile关键字

王坤祥

Java volatile

ARTS 挑战打卡第十五周(200817-200823)

老胡爱分享

ARTS 打卡计划

话题讨论 | 作为一名程序员,沟通能力是否重要?

InfoQ写作社区官方

程序员 写作平台 话题讨论

Python3 单例模式

王坤祥

Python Singleton

PostgreSQL函数、索引和视图操作Demo展示

王坤祥

postgresql

ARTS 挑战打卡第十四周(200810-200816)

老胡爱分享

ARTS 打卡计划

一键超频 双C Carry,普通用户如何挖潜英特尔十代酷睿?

E科讯

兼具艺术情怀和舒适旅居体验,木莲庄做了什么

InfoQ_967a83c6d0d7

SpreadJS 纯前端表格控件应用案例:PtLims云平台

葡萄城技术团队

SpreadJS 纯前端表格控件应用案例:物业行业全面预算管理系统

葡萄城技术团队

有它的加持,单机玩转百亿大数据不是梦!

易观大数据

百度联合发布全球最大中文自然语言处理数据共建计划“千言”

百度大脑

人工智能 百度 nlp 百度大脑

大数据思维与运用

石云升

大数据 数据建模 数据驱动

Tencent AI Lab 日常实习生招聘

InfoQ_d00afcd122a8

招聘

SpreadJS 纯前端表格控件应用案例:立信智能审计云平台(SACP)

葡萄城技术团队

oeasy教你玩转linux010104灵魂之问whatis

o

SpreadJS 纯前端表格控件应用案例:资料填报系统

葡萄城技术团队

CECBC区块链专委会副主任吴桐主讲成都市委宣传部区块链和数字

CECBC

区块链 数字货币

阿里为什么推荐使用LongAdder,而不是volatile?

王磊

Java 性能 volatile

如何在应用中快速稳定地实现 LBS 服务?!_语言 & 开发_刘芸_InfoQ精选文章