如何轻松和安全地构建的满足合规要求的智能产品,实现业务需求?4月26日,告诉你答案! 了解详情
写点什么

高德地图 LBS 开放平台系列沙龙现场实录:常见问题答疑、省电技巧、摇摇公交离线查询思路分享、新版 SDK 功能介绍

  • 2013 年 11 月 30 日
  • 本文字数:3151 字

    阅读完需:约 10 分钟

2013 年 11 月 28 日,高德地图在一场小规模的 LBS 开放平台开发者活动上分享了有关 LBS 的技术答疑、如何开发出省电高效的地理位置类应用的技巧、如何利用高德地图API在自己的应用中添加定制化的点等。清华大学的姜海老师也作为高德地图的合作伙伴进行了分享,他开发的iOS 应用“摇摇公交”获得了2012 高德地图杯中国LBS 应用大赛二等奖。

首先,LBS 开放平台产品经理张群对开发者们经常问到的问题进行了答疑。

Q:高德地图 API 目前支持哪些开发平台?

A:目前支持 iOS、Android、WP、Windows 8、黑莓和 HTML5。

Q:开发者利用高德 API 制作了付费应用,是否需要给高德付费?

A:目前,高德地图 API 是完全免费的,但是有并发数与访问限制(具体限制见高德地图API 官网)。

对于想要得到更多资源的用户,可以升级到高德地图API 专业版,预计在今年12 月底会上线。

Q:是否支持国外地图和定位?

A:目前支持大陆和港澳台,国外暂不支持。港澳现在已经支持基站定位,台湾地图预计到 12 月底就会有,基站定位预计到明年会跟进。

对于确实需要同时支持国内外地图的开发者,因为高德地图采用了国测局的 gcj-02 坐标系,跟 Google、苹果等地图供应商是一致的,而且也有合作,可以直接迁移过去。

Q:高德地图 API 的优势在哪里?

A:支持的平台多;自采数据,自融合,数据更新频率和准确性高。基础底图一个季度一更新,其他数据审核通过即更新;阿里云的硬件条件;跟几亿条淘宝门址数据融合,更精准的 geocoding,通过地址就可以定位,比地理编码更精细,准确度大大提高;在传统 GIS 行业的积累。

Q:新版 API 性能如何?

A:旧版是 2D 栅格数据,新的 3D 版本使用 OpenGL 内核绘制矢量地图,消耗会比旧版增加一些,但有一些技巧可以提高效率、省电。

Q:高德是否提供服务器端的 API?

A:有基于 REST 的接口,开发者以 http 请求方式发送参数即可使用搜索接口。这个接口暂时没有上官网,目前是通过一些渠道分发给少量用户。年底会正式上线。对于免费用户有次数限制。

Q:高德地图 API 支持哪些定位方式?

A:Wifi+cell、GPS、混合,三种模式。返回的地址可以在 Google 地图和苹果地图正确显示。

Q:是否支持 GIS 平台的特有数据格式?

A:用户需求量还比较小,暂时不支持。但是,其实这些数据格式都是公开的,读取的实现并不复杂。

Q:高德地图的实时交通覆盖多少城市?

A:旧版支持 33 个城市,新版增加到 47 个城市(见官方FAQs

Q:通过 cell 方式取到了基站的位置,如何转换成经纬度数据?

A:这方面需求较小,暂不提供。

Q:高德地图 API 免费的时限有多久?会不会用着用着又不免费了?

A:高德地图 API 会一直免费,只是有调用次数的限制。12 月底要推出的收费专业版主要是做底图的定制化和一些功能的封装,高德内部有一个政企部门专门负责这一块。

Q:如果发现地图数据有错误,有哪些方法反馈?

A:你可以反馈到我们的 API 邮箱(api@autonavi.com)和技术支持群(250019928/76260931/279447957),另外高德地图 App 自己也有一个反馈入口。收到反馈后,数据生产部门在验证后会立刻更新,数据最快半个小时即可上线。

Q:高德地图 API 在带宽使用效率方面是否有改进计划?

A:建议使用离线数据以避免加载请求。

接下来,高德地图 API 产品经理朴春植分享了 Android 3D Map SDK 的优化经验,以提升 App 的效率、降低耗电量。省电主要有几个方面可以实现:

  1. 硬件方面:尽量减少使用 GPS 硬件、陀螺仪的次数。Wifi 和基站的误差大约在 150m 左右,可以考虑以时间和距离两个纬度减少定位频率,如 1 分钟定位一次,走 50m 定位一次等。陀螺仪也是很灵敏的,默认可能 0.01 度就会触发,可以设置为 1 度甚至 2 度变更才触发
  2. 减少网络使用:压缩传输数据、多用内存缓存和本地缓存。减少数据传输方面,以前的栅格切片一个 20k,对应的矢量地图只有 2~3k;用 json 相比 xml 也可以减少传输的数据量
  3. 代码方面:主要是 CPU、IO、启动线程数量这三方面。用内存缓存来减少 IO。记得停止线程以控制线程数量。降低 OpenGL es 的刷新率,50 帧就够了,地图不动的时候是不用刷新的
  4. 减少绘制:屏幕以外的地图不用绘制
  5. 上线新版之前做好测试,确保 CPU 占用率无明显增长,内存占用不会一直增多,流量和电量消耗比之前好。可以使用 top 命令或 ADT 工具查看占用率

朴春植还分享了如何使用 API 来添加自定义的点,包括设置自定义锚点图的相对位置、拖拽实现、个性化图片展示、以及动画点的实现等。

然后,清华大学的姜海老师分享了从做摇摇公交积累的一些数据和心得。姜海自己的研究方向是离散选择、数据挖掘、优化模型和算法,摇摇公交是为了解决自己的痛点而开发的一个应用,目前仅支持iOS,已经在AppStore 上积累了20 万用户。

姜海介绍,在他做摇摇公交之前,市场上已经有了很多公交类App,包括百度背景的创始人做的爱帮公交、8684 公交、个人开发者做的公交闹铃、图吧地图的彩虹公交、搜狗公交、百度公交、以及大连团队做的熊猫公交等。

为什么公交类应用这么火,以至于很多做了地图应用的厂家还要单独做一个公交类应用?姜海引用了百度的一句话:

“百度地图有三分之二的用户都用它来查公交。”

但是,姜海觉得这些应用都太难用了。他用数据表示其他用户也对这些应用不满意:在一次公交类应用的调查中,42% 用户对流量消耗不满意,40% 用户对查询结果不满意。尤其对于2G 网络的用户来说,在线查询往往只能看菊花转个不停;而离线查询方面,要么必须输入站点,要么基于之前在线的浏览历史,用户体验并不好。

为什么离线搜索这么难做?姜海表示这是因为手机的内存和计算能力有限,PC 上的算法在手机上都不好用。而为了在本地储存更多数据,也会导致离线包越来越大。据说8684 每年的带宽成本要好几万,都是用户下载离线包给下的。

摇摇公交主要有两件事是自己做的:

1、离线查询算法 2、数据结构

这两块是摇摇公交的核心竞争力。摇摇公交目前为 14 个城市提供离线数据,北京的离线包包含八万多个 POI 地名。至于 GPS 调用、城市信息、地图展示,都是直接用高德 API 实现的。POI 匹配和路线查询,针对在 14 个城市、网络不好的用户采用自主方案匹配,对于其他用户采用高德的匹配方案。

产品设计方面,摇摇公交采取如下思路:

1、用户在搜索时,提供一个只搜索目的地的简洁界面,无需输入起点 2、通过摇手机或点搜索按钮触发搜索之后,应用会搜索起点附近 1.5km 内的 10 个车站和终点附近的 10 个车站,计算出可搭乘的路径,一般有 20 多条路径 3、对这些路径按起点车站进行分类,并用不同颜色标注可直达的车、需要换乘的车等 4、无论是在线还是离线查询都会上传信息用于统计,同时给用户建立 profile 判断其偏好,比如他是喜欢多走路还是喜欢坐地铁,在之后的搜索中影响他获取结果的排序

姜海表示本来想月底发布 Android 版,现在决定只放 SDK,因为自己精力有限,宁愿把这个开放出去,让想做的人去把应用做出来,说不定会有更多创意。

最后,高德移动端 SDK 产品经理李乐介绍了本次新版 SDK 的一些更新内容。各平台共有的更新包括:

  • 增加绘制大地曲线,用于绘制航线
  • 增加驾车返回途径城市的功能
  • 47 个城市实时交通支持
  • 在矩形和圆形之外,增加多边形区域 POI 搜索

Android SDK 特有的更新:

  • 开放 OpenGL 接口 CustomRenderer 类
  • 支持将 view 转化为 marker 图标
  • 添加获得当前可见区域内所有 marker 的方法 GetMapScreenMarkers
  • 开放默认定位图标的旋转
  • 自定义绘制实时路况的道路标记颜色,包括畅通、缓慢、拥堵、极度拥堵四个级别

iOS SDK 特有的更新:

  • 默认显示指南针
  • 默认显示比例尺
  • overlay 支持绘制虚线
  • 开放定位参数的设置接口 MAMapView LocationOption
  • 新增 zoomlevel 属性
  • Annotation 数组,调整地图视窗到合适的显示范围

另外,高德地图 12 月将发布的新版本将支持室内地图,覆盖全国三千多个商场等建筑。SDK 对室内地图的支持会迟一些才有。

2013 年 11 月 30 日 00:025900

评论

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

基于mysql的消息队列消息存储的表结构设计

Apple_7b0980

「架构实战营」

市场进展不断,STI 包括ZB等一系列上线预示着什么?

西柚子

模块8-设计消息队列存储消息数据的 MySQL 表格

卡西毛豆静爸

#架构实战营

Gitlab Java API 使用示例

Java gitlab 4月月更

都是分布式操作系统,Laxcus和鸿蒙有何不同?

LAXCUS分布式操作系统

分布式计算 分布式存储 集群架构 分布式操作系统 分布式应用软件

你好spring-cloud-kubernetes

程序员欣宸

4月月更

模块8作业

Mr小公熊

架构实战营作业 8

zh

架构实战营

爱讲故事的计算机科学家,和他的分布式系统

多颗糖

消息队列存储消息数据的mysql表设计

五月雨

架构实战营 「架构实战营」

消息队列存储消息数据的 MySQL 表格

阿卷

架构实战营

模块3 作业

KennyQ

尤达 DDD 领域驱动设计思想课程总结

代廉洁

尤达DDD领域驱动设计思想

微信小程序开发设计需要注意的五个点

源字节1号

前端 后端 软件开发 小程序开发

Java中的复用类

爱好编程进阶

Java 面试 后端开发

Java中高级核心知识全面解析——Linux基本命令

爱好编程进阶

Java 面试 后端开发

消息队列存储消息数据的 MySQL 表格设计

李大虾

#架构实战营 「架构实战营」

消息队列数据存储表设计

随欣所遇

架构训练营5期

模块八作业:设计消息队列存储消息数据的 MySQL 表格

炎彬

「架构实战营」

GitOps多环境部署问题及解决方案

俞凡

研发效能 gitops

JavaWeb快速入门--Servlet(2)

爱好编程进阶

Java 面试 后端开发

第八个模块作业

achilles

linux之rename命令

入门小站

性能分析优化的道与术

老张

性能优化 性能分析

架构实战营:模块八作业

刘璐

作业八

Geek_f3e842

架构实战营

【国产化替代专题】星环科技春季新品发布周

星环科技

商业分析:SheIn是怎样成功的?

石云升

跨境电商 商业分析 4月月更

统计代码耗时的工具

Rubble

4月日更 4月月更

浅谈项目中的需求管理

秋去冬来春未远

需求管理 需求分析 需求和问题

多系统信息化实施项目注意事项

秋去冬来春未远

数字化 信息化 系统集成 ERP 多系统

高德地图LBS开放平台系列沙龙现场实录:常见问题答疑、省电技巧、摇摇公交离线查询思路分享、新版SDK功能介绍_语言 & 开发_sai_InfoQ精选文章