百度技术沙龙第 8 期回顾:地图 API 的应用和优化(含资料下载)

  • 葛明见

2010 年 11 月 26 日

话题:Java语言 & 开发架构

在 2010 年 11 月 20 日的百度技术沙龙上,我们很荣幸地请到了 Web 前端研发部高级工程师陈广琛和资深开发工程师陈飞为我们分享了 Map API 的应用和优化的话题。本文对此进行了简单总结,稍后会为大家提供演讲的音视频和文档等资料的下载,请关注本文以及近期 InfoQ 所发布的视频。

BaiDu Map API(相关音视频、资料下载见百度地图 API1.1 新功能应用)

陈广琛在沙龙分享中主要给大家介绍了BaiDu Map API1.1 的技术应用和功能。在分享中陈广琛主要介绍了百度地图 API 1.1 的功能,并用一些实际应用的例子,帮助大家更好的理解百度地图 API 能干什么,以及如何通过百度地图 API 为自己的用户带来更好的地理信息服务。

百度地图 API1.1 支持 iPhone、Andriod 移动平台开发,能够提供更加真实的三维地图。现在百度地图在 Overlay 方式的几个改进。还有以前做给用户使用的地图产品用到的 Traffic Layer,现在大家也可以在地图 API1.1 调用出来使用;通过调用在地图 API1.1 的 Reverse Geocoding 大家可以实现通过用户提供的一个地点的坐标,可以查询该地点的相关街道信息;百度地图 API1.1 还提供了 Geolocation API,实现定位和测绘。

在分享中,陈广琛现场操作了个 Demo,演示了如何引用百度地图的 Map 文件,并把它投影到移动浏览器上,加载出相应的地图。现场一边操作一边和参会者进行相关技术领域的问答,很直接明了的向在场的参会者展示了百度地图 API 的应用。

在后面的 Q&A 环节,陈广琛回答了与会者提出的几个问题。有 API 可以将 WGS84 的坐标在地图上标出期望的点吗?

这样的 API 不允许存在,国内法律部允许这样的 API 存在。建议大家使用百度地图的定位接口,确保能返回我们的坐标系,但是如果你是除了定位以外,用其他方法获得一个 WGS84 的地址,国内任何一个提供商能够给你提供服务。

百度地图对国外地图数据支持如何?

这是一个非常好的问题。我们现在正在做一些国际化和本地化的工作,明年大家应该能看到百度地图一个覆盖亚洲或者更大的一个地图体系。

如何通过 IP 映射为地理位置然后展现在 Map 上?有 API 实现吗?

这个暂时超出网页 API 的范畴,网页 API 是不会提供到 IP 映射这个级别的应用的,我们会提供一些更底层的 API 应用,但那不是给网页应用的。如果你是浏览器厂商或者客户端软件厂商,可以跟我们谈合作,尝试使用我们内侧的接口来做这样的映射。

百度 3D 地图与谷歌卫星地图比较有什么优劣势?

这个优劣势不能纯粹的从技术角度讨考虑,更多的从产品的级别来考虑。要看你希望用户得到什么样的体验,有些情况下,百度的 3D 地图更好一些,如果你的用户希望从一个路口找到另一个地方,这是很方便的。谷歌的一个特点是它能提供很高的真实性。

简单对比一下百度地图API 和51 地图API 的异同

我没很深入的研究过不同 API 的异同,但是大部分 API 基础功能的调用方式类似,具体的区别你需要自己试验哪家供应商的地图 API 是比较符合你的要求的,另外一个就是细节上的,比如说做一个 Overlay,有些 API 允许在 Overlay 做许多复杂的操作,比如说提供辅助方案支持用户可编辑或者可交互的 Overlay,更多的是在这些细节功能上的应用,具体怎么选择还是要看你自己对这些细节的要求。

因为时间关系,还有很多问题不能一一现场作答。陈广琛给大家留下了联系邮箱:MapAPI@Baidu.com,如果大家还有什么问题,都可以通过这个邮箱百度了解。

地图 API 的理解和运用(相关音视频、资料下载见地图 API 的理解和应用

陈飞在沙龙中,从地图 API 的基本内容讲起,向大家简单介绍了地图 API 的应用方式,根据自己个人工作经验解析了地图 API 的要素组成:

他认为简单理解来说,地图 API 就是一个类库,或者说是链接库。接下来他就详细介绍了地图 API 的元素组成和控件组成。并简单介绍这些元素的用法。这些对 Map API 的组成的介绍对大家从技术角度认识网页地图产品比较有帮助

接下来陈飞有利用几个 Demo 分别介绍了地图 API 的各种应用,如何把简单的定位功能做的丰富生动;如何实现菜单控件化;一些另类的自定义用法;在游戏中应用;还有地图 API 的实时应用以及最新的一种可以定义修改的 Stylish map 等等。

在 Q&A 环节,陈飞回答了参会者的现场提问。如何用 IP 在地图上展现用户所在城市,或者能否通过 IP 映射的地名再在地图上显示,有没有更好的设计思路?

上面我讲的 services 里面有项 Gecoding,就是去解析地址。如果你想利用地图 API 去定义,可以通过解析返给你具体的经纬度,不管供应商用的是什么系统,数据是什么进制,传给你的就是你想要展示出来的,而不是字符串地址。Gecoding 就是这个作用的接口,但是这个接口对 Sever 端的压力很大,所以供应商一般不愿意或者有限制的提供解析服务。

您提到的浏览器接口提供当前位置,是那些浏览器,什么样的接口,能否简单介绍一下?

是浏览器提供这个说法可能是个不严谨的说法。你在用 JavaScrip 做开发时,可能会有一个 location 的方法可以获取到,Firefox、Chrome、safari 等都可以,IE 有没有这个功能我不太清楚。

Map API 结合 SNS 的应用有什么典型的应用?

典型的话,最早的就是 twitter。像我开始说的那样,整个网页就是一个大地图,twitter 也有地图 API 接口,你可以实施渠道,比如说有人给你发个消息,你可以在 map 上找到发消息人的地址。其他的话,比如说旅游啊等都可以用 SNS 在地图上做啊。

两位讲师的精彩分享之后就是每次活动都受欢迎的 OpenSpace 环节,和往常一样与会者自主的提出话题,自由分组讨论,经过一个多小时的自由交流讨论之后,现场决定出了讨论最积极最热烈的三个组,颁发了百度提供的纪念品。并且提出话题的组长也现场分享了自己在讨论中的感受:

来自北大软件的李树强发起的第三组讨论最为热烈,他们讨论如何把平时平面化的应用和地图结合起来,比如说音乐、微博还有校友录和地图联系起来,将会是一件很有意思的事情,并结合几个实例,讨论的十分热烈。

来自北京利行网络科技的杨鹏,他所在的公司本身也能提供地图 API 应用,他们讨论的是 API 的应用,如何拿来做一些吸引人的开发。

第四讨论的话题是地图编程和 Lbs 的结合,开发位置确认的应用。他举例说明,发生火灾时,消防中心会通过系统查处现场电话报警人的具体位置,从而合理安排最近消防人员前往。

第一组组长首先表示自己在这次沙龙中获得了不少受益,他提出的话题是如何把地图 API 和行业上的专业软件结合起来,通过讨论找出了两三种方式来进行这个事情。他们认为百度沙龙就是一个很好的平台,可以认识很多人,集思广益的做这些事情。

第五小组的话题发起人介绍说自己发起的话题和自身工作无关,但是希望和大家一起讨论学习相关内容,他们小组的话题是旅游网站如何用地图 API 来获得景点的人流信息以及手机地图和网站地图以及 GPS 的结合运用。

第六组的话题发起人最后和大家分享了自己想要讨论的话题是地图 API 和 GIS 的渊源,他认为地图 API 就是 Web GIS 和移动 GIS 的分支,他们就是讨论地图 API 用到 GIS 里面的一些原理和概念,怎么把 GIS 用更好的应用到生活中来。

会后也有人发表了自己的博客,写出自己对这次沙龙的感觉和看法:

来自CNW 论坛的一篇博客:终于轮到地图话题~~~ 百度技术沙龙第八期现场!!。作者就提到,自己以前听说过百度沙龙,却一直没有自己关注的话题。这次终于有自己关注领域的话题,就特意过来参加这次活动,活动没让自己有失望,还认识了不少同行的朋友。而现场参会者吕毅在其博客“QClub& 百度技术沙龙:地图 API 和 LBS 技术介绍”中分享了陈广琛和陈飞的主要演讲内容,以及自己的感触“感觉行业软件领域相对互联网对 Baidu Maps API 的应用有更大的兴趣。”。

百度技术沙龙第 9 期将于 12 月 18 日举行,所讨论的话题为“网站分布式存储系统优化”,届时欢迎参加有新浪微博的读者可以关注@InfoQ ,第一时间获得 InfoQ 发布的活动信息、企业开发相关技术资讯等。

Java语言 & 开发架构