59
百百百百 API web 百百百百百 百百 [email protected]

第四节课:百度地图api

Embed Size (px)

Citation preview

Page 1: 第四节课:百度地图api

百度地图 API

web 前端研发部 马骥[email protected]

Page 2: 第四节课:百度地图api

2009 年 8 月 18 日麦兜团队

Page 3: 第四节课:百度地图api

内容• 百度地图 API 介绍• 系统架构设计• 百度地图 API 特色• 百度地图 API 实战

Page 4: 第四节课:百度地图api

什么是百度地图 API

Page 5: 第四节课:百度地图api

什么是百度地图 API

• 基于 JavaScript 的类库• 在你的网站中集成地图应用• 数据与地图融合展现

– 标注、信息窗口、折线• 调用百度地图服务

– 公交、驾车、步行导航

Page 6: 第四节课:百度地图api

什么是百度地图 API

• 手机客户端 SDK• 定位服务• 静态图 API

Page 7: 第四节课:百度地图api

百度地图服务集

Javascript API Flash/Flex API

iPhone Android

HTTP Services Static Map

Baidu Map Service Engine

Windows Mobile

Symbian

Page 8: 第四节课:百度地图api

为行业提供解决方案• 房产搜索• 酒店预订• 旅游指南• 餐馆点评• 校园生活• 订单跟踪• 在线游戏• …

Page 9: 第四节课:百度地图api
Page 10: 第四节课:百度地图api
Page 11: 第四节课:百度地图api
Page 12: 第四节课:百度地图api

系统架构介绍

Page 13: 第四节课:百度地图api
Page 14: 第四节课:百度地图api

百度地图 API 特色• 兼容性• 功能• 可用性• 性能

Page 15: 第四节课:百度地图api

兼容性Compatibility

Page 16: 第四节课:百度地图api
Page 17: 第四节课:百度地图api

功能Functionality

Page 18: 第四节课:百度地图api

基础部分

核心部分

控件 覆盖物 图层 工具

本地搜索 公交导航 驾车导航

步行导航 定位服务 地理编码

Page 19: 第四节课:百度地图api

自定义控件

自定义覆盖物 自定义图层

自定义标注图标

自定义地图类型

定制化

Page 20: 第四节课:百度地图api
Page 21: 第四节课:百度地图api

MarkerClusterer

DistanceTool DragAndZoom

PushpinTool PolylineTool PolygonTool

所有都是开源的

Library

Page 22: 第四节课:百度地图api

中型、大型案例库

Page 23: 第四节课:百度地图api

新技术

HTML5 CSS3

Page 24: 第四节课:百度地图api
Page 25: 第四节课:百度地图api

性能Performance

Page 26: 第四节课:百度地图api

91.4K

63K

32.2K

初始脚本大小

Page 27: 第四节课:百度地图api

按需 异步

透明跨域

Page 28: 第四节课:百度地图api

接口 +

实现

同步加载

Page 29: 第四节课:百度地图api

接口

实现

+

异步加载 (Dynamic Script Element)

同步加载

Page 30: 第四节课:百度地图api

Simplification

Page 31: 第四节课:百度地图api

并不是所有的线都处于视野内

Page 32: 第四节课:百度地图api
Page 33: 第四节课:百度地图api

内存使用

Page 34: 第四节课:百度地图api
Page 35: 第四节课:百度地图api

百度地图的 Hello World

<script src="http://api.map.baidu.com/api?v=1.1&services=false" type="text/javascript"></script>

<div id="map" style="width:500px;height:340px"></div>

<script type="text/javascript">var map = new BMap.Map('map');map.centerAndZoom(new BMap.Point(116.404, 39.915), 14)</script>

Page 36: 第四节课:百度地图api

百度地图的 Hello World

Page 37: 第四节课:百度地图api

百度地图 API 基本功能• 控件• 覆盖物• 信息窗口• 图层

Page 38: 第四节课:百度地图api

控件• 缩放 / 平移控件• 缩略图控件• 比例尺控件• 地图类型控件• 版权控件• 自定义控件

Page 39: 第四节课:百度地图api

添加控件

map.addControl(new BMap.NavigationControl());

Page 40: 第四节课:百度地图api

自定义控件• 本质上是绝对定位在地图容器中的 HTML

元素。• 开发者可自行编写 HTML 实现自己的控件

Page 41: 第四节课:百度地图api

覆盖物• 标注、文本标注• 折线• 多边形• 圆形

Page 42: 第四节课:百度地图api

标注

map.addOverlay(new BMap.Marker(map.getCenter()));

Page 43: 第四节课:百度地图api

自定义标注

var myIcon = new BMap.Icon( "http://api.map.baidu.com/img/markers.png",  new BMap.Size(28, 37),  {offset: new BMap.Size(15, 37)}); 

var marker = new BMap.Marker(map.getCenter(), { icon: myIcon});

map.addOverlay(marker);

Page 44: 第四节课:百度地图api

自定义标注

Page 45: 第四节课:百度地图api

信息窗口• 显示丰富信息

var info = new BMap.InfoWindow('Hello, World');map.openInfoWindow(info, map.getCenter());

marker.openInfoWindow(info);

Page 46: 第四节课:百度地图api

信息窗口

Page 47: 第四节课:百度地图api

信息窗口• 展现复杂 HTML 、视频也可以

Page 48: 第四节课:百度地图api

自定义覆盖物• 具有自己的地理位置信息• 本质上是定位在某个位置的一段 HTML• 开发者可自行定义覆盖物

Page 49: 第四节课:百度地图api

图层• 交通流量图层• 自定义图层

Page 50: 第四节课:百度地图api

事件机制

map.addEventListener("click", function(){ alert(" 您点击了地图。 "); });

marker.addEventListener("click", function(){ this.openInfoWindow(info);});

Page 51: 第四节课:百度地图api

百度地图 API 高级应用• 本地搜索• 导航服务• 地理编码• 定位

Page 52: 第四节课:百度地图api

本地搜索

var local = new BMap.LocalSearch(" 北京 ", { renderOptions:{map: map} });local.search(" 麦当劳 ");

Page 53: 第四节课:百度地图api

本地搜索

Page 54: 第四节课:百度地图api

地理编码

位置描述 地理坐标

Page 55: 第四节课:百度地图api

定位

Page 56: 第四节课:百度地图api

百度地图目标与使命

满足人们的基本出行需求,将虚拟世界与现实世界连接在一起。

Page 57: 第四节课:百度地图api

地图 API 学习建议• 掌握 JavaScript 、 HTML 、 CSS• 面向对象编程• 阅读开发指南• 学习示例参考• 查看类文档

Page 58: 第四节课:百度地图api

更多地图 API资源• 地图 API官方首页

– http://dev.baidu.com/wiki/map/

• 联系我们– [email protected]– HI群 : 1357363

Page 59: 第四节课:百度地图api

Q&A