开发指南
目录
[隐藏]
1 简介
2 基础知识
3 控件
4 覆盖物
5 事件
6 地图图层
7 工具
8 服务
简介
什么是百度地图API
百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用。百度地图API包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。
面向的读者
API是提供给那些具有一定JavaScript编程经验和了解面向对象概念的读者使用。此外,读者还应该对地图产品有一定的了解。
您在使用中遇到任何问题,都可以通过API贴吧或交流反馈给我们。
获取API
地图API是由JavaScript语言编写的,您在使用之前需要通过<script>标签将API引用到页面中:
<script src="api.map.baidu/api?v=版本&services=true或者false" type="text/javascript"></script>
其中参数vAPI当前的版本号,目前最新版本为1.2services参数表示是否加载服务部分,true表示加载,false表示不加载。
开发移动平台上的地图应用
API1.1版本起开始支持iPhoneAndroid这样的移动平台。用户通过手机浏览器就可以访问由地图API创建出来的应用。移动平台的屏幕尺寸通常比PC或笔记本要小,操作方式也有所不同。为了更好的在手机浏览器上展示地图,我们有如下建议:
将地图容器高设置为100%,使其充满整个屏幕,或者您也可以计算浏览器窗口的大小并进行设置。
添加下面的meta标签: <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 这样做是为了让页面以正常比例进行显示并且禁止用户缩放页面的操作。
您可以参考 Apple's Developer documentation Android documentation 获得更多信息。
异步加载
API 1.11.2版本支持异步加载,您可以在引用脚本的时候添加callback参数,当脚本加载完成后callback函数会被立刻调用。请参考下面的使用示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>异步加载</title>
<script type="text/javascript">
function initialize() {
var mp = new BMap.Map('map');
mp.centerAndZoom(new BMap.Point(121.491, 31.233), 11);
}
function loadScript() {
var script = ateElement("script");
script.src = "api.map.baidu/api?v=1.2&callback=initialize";
document.body.appendChild(script);
}
load = loadScript;
</script>
</head>
<body>
<div id="map" ></div>
</body>
</html>
兼容性
浏览器:IE 6.0+Firefox 3.0+Opera 9.0+Safari 3.0+Chrome
操作系统:WindowsMacLinux
移动平台: iPhoneAndroid
操作系统:WindowsMacLinux
版本说明
地址 api.map.baidu/api?v=1.1 百度api接口中的参数v表示您加载API的版本,例如当前API的最新版本为1.1,则您可在地址中添加 v=1.1。当API升级后,如果已有接口在使用、命名等
方面发生了变化,我们会为其增加一个新的版本号,这不会对您现有的应用造成任何影响。如果升级只是修复一些bug或者在不影响现有功能的前提下增加接口、改善性能,则版本号不会发生变化。您可以在更新日志页面查看版本的变化。
问题解答
如果您在使用百度地图API中遇到问题,请尝试通过以下途径解决:
确认您使用了正确的地图API地址。
访问百度地图API吧,查相关问题的帖子,或者将您的问题发布到贴吧中。
基础知识
百度地图的“Hello, World”
开始学习百度地图API最简单的方式是看一个简单的示例。以下代码创建了一个地图并以天安门作为地图的中心:
<!DOCTYPE>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hello, World</title>
<style type="text/css">
html{height:100%}
body{height:100%;margin:0px;padding:0px}
#container{height:100%}
</style>
<script type="text/javascript" src="api.map.baidu/api?v=1.1&services=false"></script>
</head>
<body>
<div id="container"></div>
<script type="text/javascript">
var map = new BMap.Map("container"); // 创建地图实例
var point = new BMap.Point(116.404, 39.915); // 创建点坐标
AndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别
</script>
</body>
</html>
下面我们分步向您介绍:
准备页面
根据HTML标准,每一份HTML文档都应该声明正确的文档类型,我们建议您使用最新的符合HTML5规范的文档声明:
<!DOCTYPE html>
您也可以根据需要选择其他类型的文档声明,这样浏览器会以标准的方式对页面进行渲染,保证页面最大的兼容性。我们不建议您使用quirks模式进行开发。
下面我们添加一个meta标签,以便使您的页面更好的在移动平台上展示。
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
接着我们设置样式,使地图充满整个浏览器窗口:
<style type="text/css">
html{height:100%}
body{height:100%;margin:0px;padding:0px}
#container{height:100%}
</style>
引用百度地图API文件
由于本示例不需要数据服务,因此将services参数设置为false
<script type="text/javascript" src="api.map.baidu/api?v=1.1&services=false"></script>
创建地图容器元素
地图需要一个HTML元素作为容器,这样才能展现到页面上。这里我们创建了一个div元素。
命名空间
API使用BMap作为命名空间,所有类均在该命名空间之下,比如:BMap.MapBMap.ControlBMap.Overlay
创建地图实例
var map = new BMap.Map("container");
位于BMap命名空间下的Map类表示地图,通过new操作符可以创建一个地图实例。其参数可以是元素id也可以是元素对象。
注意在调用此构造函数时应确保容器元素已经添加到地图上。
创建点坐标
var point = new BMap.Point(116.404, 39.915);
这里我们使用BMap命名空间下的Point类来创建一个坐标点。Point类描述了一个地理坐标点,其中116.404表示经度,39.915表示纬度。
地图初始化
AndZoom(point, 15); 
在创建地图实例后,我们需要对其进行初始化,AndZoom()方法要求设置中心点坐标和地图级别。地图必须经过初始化才可以执行其他操作。
地图配置与操作
地图被实例化并完成初始化以后,就可以与其进行交互了。API中的地图对象的外观与行为与百度地图网站上交互的地图非常相似。它支持鼠标拖拽、滚轮缩放、双击放大等交互功能。您也可以修改配置来改变这些功能。 比如,默认情况下地图不支持鼠标滚轮缩放操作,因为这样可能会影响整个页面的用户体验,但是如果您希望在地图中使用鼠标滚轮控制缩放,则可以调用ableScrollWheelZoom方法来开启。配置选项可以在Map类参考的配置方法一节中到。
此外,您还可以通过编程的方式与地图交互。Map类提供了若干修改地图状态的方法。例如:setCenter()panTo()zoomTo()等等。
下面示例显示一个地图,等待两秒钟后,它会移动到新中心点。panTo()方法将让地图平滑移动至新中心点,如果移动距离超过了当前地图区域大小,则地图会直跳到该点。
var map = new BMap.Map("container");
var point = new BMap.Point(116.404, 39.915);
AndZoom(point, 15);
window.setTimeout(function(){
map.panTo(new BMap.Point(116.409, 39.918));
}, 2000);
控件
地图控件概述
百度地图上负责与地图交互的UI元素称为控件。百度地图API中提供了丰富的控件,您还可
以通过Control类来实现自定义控件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。