(→版本说明及申请API ak) |
|||
(未显示4个用户的47个中间版本) | |||
第1行: | 第1行: | ||
− | == | + | {{jspopular-sidebar}} |
+ | ==JavaScript API功能介绍== | ||
百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用,包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。 | 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用,包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。 | ||
− | {{bluepoint}} | + | {{bluepoint}}'''基本地图功能:'''展示(支持2D图、3D图、卫星图)、平移、缩放、拖拽等。 |
− | {{bluepoint}} | + | {{bluepoint}}'''地图控件展示功能:'''可以在地图上添加/删除鹰眼、工具条、比例尺、自定义版权、地图类型及定位控件,并可以设置各类控件的显示位置。 |
− | {{bluepoint}} | + | {{bluepoint}}'''覆盖物功能:'''支持在地图上添加/删除点、线、面、热区、行政区划、用户自定义覆盖物等;开源库提供富标注、标注管理器、聚合marker、自定义覆盖物等功能。 |
− | {{bluepoint}} | + | {{bluepoint}}'''工具类功能:'''提供经纬度坐标与屏幕坐标互转功能;开源库里提供测距、几何运算及GPS坐标/国测局坐标转百度坐标等功能。 |
− | {{bluepoint}} | + | {{bluepoint}}'''定位功能:'''支持IP定位及浏览器(支持html5特性浏览器)定位功能。 |
− | {{bluepoint}} | + | {{bluepoint}}'''右键菜单功能:'''支持在地图上添加右键菜单。 |
− | {{bluepoint}} | + | {{bluepoint}}'''鼠标交互功能:'''支持动态修改鼠标样式、鼠标拖拽/缩放地图及鼠标绘制等功能。 |
− | {{bluepoint}} | + | {{bluepoint}}'''图层功能:'''支持重设地图底图、地图上叠加实时交通图层或自定义图层功能。 |
− | {{bluepoint}} | + | {{bluepoint}}'''本地搜索功能:'''包括根据城市、矩形范围、圆形范围等条件进行POI搜索;且支持用户自有数据的检索。 |
− | {{bluepoint}} | + | {{bluepoint}}'''公交检索:'''支持起始点坐标、起始点名称、LocalSearchPoi实例三种检索条件的检索;检索结果支持便捷、可换乘、少步行、不乘地铁四种方案。 |
− | {{bluepoint}} | + | {{bluepoint}}'''驾车检索:'''支持起始点坐标、起始点名称、LocalSearchPoi实例三种检索条件的检索;返回最短时间、最短距离、避开高速的驾车导航结果;且提供计算打车费用服务。 |
− | {{bluepoint}} | + | {{bluepoint}}'''步行导航:'''提供步行导航方案。 |
− | {{bluepoint}}逆/ | + | {{bluepoint}}'''逆/地理编码:'''支持百度坐标与地址描述信息之间的转换服务。 |
− | {{bluepoint}} | + | {{bluepoint}}'''个性化数据展示功能:'''用户自有数据存储到LBS.云后,JavaScript API可以提供以麻点图形式展示自有数据功能。 |
==面向的读者== | ==面向的读者== | ||
API是提供给那些具有一定JavaScript编程经验和了解面向对象概念的读者使用。此外,读者还应该对地图产品有一定的了解。 | API是提供给那些具有一定JavaScript编程经验和了解面向对象概念的读者使用。此外,读者还应该对地图产品有一定的了解。 | ||
− | + | 您在使用中遇到任何问题,都可以通过[http://bbs.lbsyun.baidu.com/ API论坛]反馈给我们。 | |
==坐标转换== | ==坐标转换== | ||
− | 国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。 | + | {{red|国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。}} |
− | + | {{red|坐标转换、批量坐标转换示例详见}}[http://developer.baidu.com/map/jsdemo.htm JavaScript API示例]。 | |
==版本说明及申请API ak== | ==版本说明及申请API ak== | ||
− | 为了统一平台服务的配额管理,JavaScript API在新版本引入ak机制。JavaScript API v1.4及以前版本无须申请密钥(ak),自v1. | + | 为了统一平台服务的配额管理,JavaScript API在新版本引入ak机制。JavaScript API v1.4及以前版本无须申请密钥(ak),自v1.5版本开始需要先[http://lbsyun.baidu.com/apiconsole/key?application=key 申请密钥(ak)],才可使用,如需获取更高配额,请[http://lbsyun.baidu.com/apiconsole/auth 点击申请]认证企业用户。 |
地址: | 地址: | ||
<pre> | <pre> | ||
http://api.map.baidu.com/api?v=1.4 //参数v表示您加载API的版本,使用JavaScript APIv1.4及以前版本可使用此方式引用。 | http://api.map.baidu.com/api?v=1.4 //参数v表示您加载API的版本,使用JavaScript APIv1.4及以前版本可使用此方式引用。 | ||
− | http://api.map.baidu.com/api?v= | + | http://api.map.baidu.com/api?v=2.0&ak=您的密钥 //使用JavaScript APIv2.0请先申请密钥ak,按此方式引用。 |
</pre> | </pre> | ||
第55行: | 第56行: | ||
验证失败的可能原因包括: | 验证失败的可能原因包括: | ||
− | {{bluepoint}} | + | {{bluepoint}}尚未在[http://lbsyun.baidu.com/apiconsole/key API控制台]申请ak,即'...ak='; |
{{bluepoint}}密钥设置错误,如E4805d16520de693a3fe707cdc962045为正确的ak,但是设置时输入的ak为E4805d16520de693a3fe707cdc962045xx; | {{bluepoint}}密钥设置错误,如E4805d16520de693a3fe707cdc962045为正确的ak,但是设置时输入的ak为E4805d16520de693a3fe707cdc962045xx; | ||
第61行: | 第62行: | ||
{{bluepoint}}密钥未通过白名单,如下图的ak在非baidu.com域名下会报错。 | {{bluepoint}}密钥未通过白名单,如下图的ak在非baidu.com域名下会报错。 | ||
− | http:// | + | http://wiki.lbsyun.baidu.com/cms/jsapi/js_ak_refer.png |
− | + | ||
− | http:// | + | {{bluepoint}}[http://lbsyun.baidu.com/apiconsole/quota API控制台]关闭JavaScript API时会报错; |
+ | |||
+ | http://wiki.lbsyun.baidu.com/cms/jsapi/ak_no_click.jpg | ||
当API升级后,如果已有接口在使用、命名等方面发生了变化,我们会为其增加一个新的版本号,这不会对您现有的应用造成任何影响。如果升级只是修复一些bug或者在不影响现有功能的前提下增加接口、改善性能,则版本号不会发生变化。您可以在更新日志页面查看版本的变化。 | 当API升级后,如果已有接口在使用、命名等方面发生了变化,我们会为其增加一个新的版本号,这不会对您现有的应用造成任何影响。如果升级只是修复一些bug或者在不影响现有功能的前提下增加接口、改善性能,则版本号不会发生变化。您可以在更新日志页面查看版本的变化。 | ||
− | |||
− | |||
− | < | + | {{bluepoint}}错误的使用“服务端AK”用于 JavaScript API,<b>JS API只支持浏览器类型的ak(自2016年1月15日升级)</b> |
− | < | + | |
− | + | ||
− | + | 因新系统升级,新建“服务端AK”不再支持浏览器端使用;在浏览器端使用,请选择“浏览器端AK”,例如JavaScript API只支持浏览器类型AK。 | |
+ | |||
+ | 对于以前申请的服务端AK,请申请“浏览器端”类型的ak,及时更换,给您带来的不便敬请谅解。 | ||
+ | |||
+ | ==获取JavaScript API服务方法== | ||
+ | 自JS APIv1.5之后,最新版本为2.0,您需要首先[http://lbsyun.baidu.com/apiconsole/key?application=key 申请密钥(ak)],才可成功加载API JS文件。ak的使用方法如下: | ||
+ | |||
+ | <source> | ||
+ | <script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥" type="text/javascript"></script> | ||
+ | </source> | ||
+ | |||
+ | 其中参数v为API当前的版本号,目前最新版本为2.0。在1.2版本之前您还可以设置services参数,以告知API是否加载服务部分,true表示加载,false表示不加载,默认为true。 | ||
地图API是由JavaScript语言编写的,您在使用之前需要通过<script>标签将API引用到页面中: | 地图API是由JavaScript语言编写的,您在使用之前需要通过<script>标签将API引用到页面中: | ||
第81行: | 第90行: | ||
使用V1.4及以前版本的引用方式: | 使用V1.4及以前版本的引用方式: | ||
− | < | + | <source> |
<script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script> | <script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script> | ||
− | </ | + | </source> |
− | + | 使用V2.0版本的引用方式: | |
− | < | + | <source> |
− | <script src="http://api.map.baidu.com/api?v= | + | <script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥" type="text/javascript"></script> |
− | < | + | </source> |
− | + | ||
+ | 其中参数v为API当前的版本号,目前最新版本为2.0。在1.2版本之前您还可以设置services参数,以告知API是否加载服务部分,true表示加载,false表示不加载,默认为true。 | ||
==开发移动平台上的地图应用== | ==开发移动平台上的地图应用== | ||
第98行: | 第108行: | ||
{{bluepoint}}添加下面的meta标签: <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 这样做是为了让页面以正常比例进行显示并且禁止用户缩放页面的操作。 | {{bluepoint}}添加下面的meta标签: <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 这样做是为了让页面以正常比例进行显示并且禁止用户缩放页面的操作。 | ||
− | 您可以参考 Apple's Developer documentation 和 Android documentation 获得更多信息。 | + | 您可以参考 [https://developer.apple.com/devcenter/safari/index.action Apple's Developer documentation] 和 [http://developer.android.com/index.html Android documentation] 获得更多信息。 |
http://developer.baidu.com/map/static/img/js-apiv14-phone.jpg | http://developer.baidu.com/map/static/img/js-apiv14-phone.jpg | ||
− | 移动端开发具体实现请参考[http:// | + | 移动端开发具体实现请参考[[:jspopular/js-download |相关下载_示例代码]]提供的Demo源码。 |
+ | |||
+ | ==Https 说明== | ||
+ | ===申请=== | ||
+ | |||
+ | JavaScript API首家支持Https,已全面开放,<b>无需申请Https服务可直接使用</b>。 | ||
+ | |||
+ | 如您需要更高配额,请您[http://lbsyun.baidu.com/apiconsole/auth 认证企业信息],<b>成为企业认证用户后,获得更高的服务配额。</b> | ||
+ | |||
+ | 注意:仅JavaScript API V2.0 版本支持https,其他JavaScript API版本均不支持。使用https服务,请先检查您的版本。 | ||
+ | |||
+ | ===配置=== | ||
+ | |||
+ | 1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1): | ||
+ | |||
+ | https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1; | ||
+ | |||
+ | 2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding: | ||
+ | |||
+ | https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1 | ||
+ | |||
+ | 3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露; | ||
==异步加载== | ==异步加载== | ||
JavaScript API支持异步加载,您可以在引用脚本的时候添加callback参数,当脚本加载完成后callback函数会被立刻调用。请参考下面的使用示例: | JavaScript API支持异步加载,您可以在引用脚本的时候添加callback参数,当脚本加载完成后callback函数会被立刻调用。请参考下面的使用示例: | ||
− | < | + | <syntaxhighlight lang="html4strict" line start="100" enclose="div"> |
+ | |||
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html> | <html> | ||
第121行: | 第153行: | ||
function loadScript() { | function loadScript() { | ||
var script = document.createElement("script"); | var script = document.createElement("script"); | ||
− | script.src = "http://api.map.baidu.com/api?v= | + | script.src = "http://api.map.baidu.com/api?v=2.0&ak=您的密钥&callback=initialize";//此为v2.0版本的引用方式 |
− | // http://api.map.baidu.com/api?v=1. | + | // http://api.map.baidu.com/api?v=1.4&ak=您的密钥&callback=initialize"; //此为v1.4版本及以前版本的引用方式 |
document.body.appendChild(script); | document.body.appendChild(script); | ||
} | } | ||
第132行: | 第164行: | ||
<div id="map" style="width:500px;height:320px"></div> | <div id="map" style="width:500px;height:320px"></div> | ||
</body> | </body> | ||
− | </html> | + | </html> |
− | </ | + | |
+ | </syntaxhighlight> | ||
+ | |||
==兼容性== | ==兼容性== | ||
{{bluepoint}}浏览器:IE 6.0+、Firefox 3.6+、Opera 9.0+、Safari 3.0+、Chrome | {{bluepoint}}浏览器:IE 6.0+、Firefox 3.6+、Opera 9.0+、Safari 3.0+、Chrome | ||
第148行: | 第182行: | ||
{{bluepoint}}访问百度地图[http://bbs.lbsyun.baidu.com/ API论坛],查找相关问题的帖子,或者将您的问题发布到贴吧中。 | {{bluepoint}}访问百度地图[http://bbs.lbsyun.baidu.com/ API论坛],查找相关问题的帖子,或者将您的问题发布到贴吧中。 | ||
− | {{bluepoint}}查看[ | + | {{bluepoint}}查看[[:jspopular/qa |常见问题]]。 |
{{bluepoint}} 加入[http://developer.baidu.com/map/contact.htm 百度HI群]。 | {{bluepoint}} 加入[http://developer.baidu.com/map/contact.htm 百度HI群]。 |
2017年6月9日 (五) 18:37的最后版本
目录
JavaScript API功能介绍
百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用,包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。
基本地图功能:展示(支持2D图、3D图、卫星图)、平移、缩放、拖拽等。
地图控件展示功能:可以在地图上添加/删除鹰眼、工具条、比例尺、自定义版权、地图类型及定位控件,并可以设置各类控件的显示位置。
覆盖物功能:支持在地图上添加/删除点、线、面、热区、行政区划、用户自定义覆盖物等;开源库提供富标注、标注管理器、聚合marker、自定义覆盖物等功能。
工具类功能:提供经纬度坐标与屏幕坐标互转功能;开源库里提供测距、几何运算及GPS坐标/国测局坐标转百度坐标等功能。
定位功能:支持IP定位及浏览器(支持html5特性浏览器)定位功能。
右键菜单功能:支持在地图上添加右键菜单。
鼠标交互功能:支持动态修改鼠标样式、鼠标拖拽/缩放地图及鼠标绘制等功能。
图层功能:支持重设地图底图、地图上叠加实时交通图层或自定义图层功能。
本地搜索功能:包括根据城市、矩形范围、圆形范围等条件进行POI搜索;且支持用户自有数据的检索。
公交检索:支持起始点坐标、起始点名称、LocalSearchPoi实例三种检索条件的检索;检索结果支持便捷、可换乘、少步行、不乘地铁四种方案。
驾车检索:支持起始点坐标、起始点名称、LocalSearchPoi实例三种检索条件的检索;返回最短时间、最短距离、避开高速的驾车导航结果;且提供计算打车费用服务。
步行导航:提供步行导航方案。
逆/地理编码:支持百度坐标与地址描述信息之间的转换服务。
个性化数据展示功能:用户自有数据存储到LBS.云后,JavaScript API可以提供以麻点图形式展示自有数据功能。
面向的读者
API是提供给那些具有一定JavaScript编程经验和了解面向对象概念的读者使用。此外,读者还应该对地图产品有一定的了解。
您在使用中遇到任何问题,都可以通过API论坛反馈给我们。
坐标转换
国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。
坐标转换、批量坐标转换示例详见JavaScript API示例。
版本说明及申请API ak
为了统一平台服务的配额管理,JavaScript API在新版本引入ak机制。JavaScript API v1.4及以前版本无须申请密钥(ak),自v1.5版本开始需要先申请密钥(ak),才可使用,如需获取更高配额,请点击申请认证企业用户。
地址:
http://api.map.baidu.com/api?v=1.4 //参数v表示您加载API的版本,使用JavaScript APIv1.4及以前版本可使用此方式引用。 http://api.map.baidu.com/api?v=2.0&ak=您的密钥 //使用JavaScript APIv2.0请先申请密钥ak,按此方式引用。
当权限验证(ak)失败时,会报如下错误:
验证失败的可能原因包括:
尚未在API控制台申请ak,即'...ak=';
密钥设置错误,如E4805d16520de693a3fe707cdc962045为正确的ak,但是设置时输入的ak为E4805d16520de693a3fe707cdc962045xx;
密钥未通过白名单,如下图的ak在非baidu.com域名下会报错。
API控制台关闭JavaScript API时会报错;
当API升级后,如果已有接口在使用、命名等方面发生了变化,我们会为其增加一个新的版本号,这不会对您现有的应用造成任何影响。如果升级只是修复一些bug或者在不影响现有功能的前提下增加接口、改善性能,则版本号不会发生变化。您可以在更新日志页面查看版本的变化。
错误的使用“服务端AK”用于 JavaScript API,JS API只支持浏览器类型的ak(自2016年1月15日升级)
因新系统升级,新建“服务端AK”不再支持浏览器端使用;在浏览器端使用,请选择“浏览器端AK”,例如JavaScript API只支持浏览器类型AK。
对于以前申请的服务端AK,请申请“浏览器端”类型的ak,及时更换,给您带来的不便敬请谅解。
获取JavaScript API服务方法
自JS APIv1.5之后,最新版本为2.0,您需要首先申请密钥(ak),才可成功加载API JS文件。ak的使用方法如下:
<script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥" type="text/javascript"></script>
其中参数v为API当前的版本号,目前最新版本为2.0。在1.2版本之前您还可以设置services参数,以告知API是否加载服务部分,true表示加载,false表示不加载,默认为true。
地图API是由JavaScript语言编写的,您在使用之前需要通过<script>标签将API引用到页面中:
使用V1.4及以前版本的引用方式:
<script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script>
使用V2.0版本的引用方式:
<script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥" type="text/javascript"></script>
其中参数v为API当前的版本号,目前最新版本为2.0。在1.2版本之前您还可以设置services参数,以告知API是否加载服务部分,true表示加载,false表示不加载,默认为true。
开发移动平台上的地图应用
API自1.1版本起开始支持iPhone、Android这样的移动平台。用户通过手机浏览器就可以访问由地图API创建出来的应用。移动平台的屏幕尺寸通常比PC或笔记本要小,操作方式也有所不同。为了更好的在手机浏览器上展示地图,我们有如下建议:
将地图容器高设置为100%,使其充满整个屏幕,或者您也可以计算浏览器窗口的大小并进行设置。
添加下面的meta标签: <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 这样做是为了让页面以正常比例进行显示并且禁止用户缩放页面的操作。
您可以参考 Apple's Developer documentation 和 Android documentation 获得更多信息。
移动端开发具体实现请参考相关下载_示例代码提供的Demo源码。
Https 说明
申请
JavaScript API首家支持Https,已全面开放,无需申请Https服务可直接使用。
如您需要更高配额,请您认证企业信息,成为企业认证用户后,获得更高的服务配额。
注意:仅JavaScript API V2.0 版本支持https,其他JavaScript API版本均不支持。使用https服务,请先检查您的版本。
配置
1. 如果使用JavaScript API ,需要加一个特殊字段 (s=1):
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;
2. 对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
3. 如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露;
异步加载
JavaScript API支持异步加载,您可以在引用脚本的时候添加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 = document.createElement("script");
- script.src = "http://api.map.baidu.com/api?v=2.0&ak=您的密钥&callback=initialize";//此为v2.0版本的引用方式
- // http://api.map.baidu.com/api?v=1.4&ak=您的密钥&callback=initialize"; //此为v1.4版本及以前版本的引用方式
- document.body.appendChild(script);
- }
- window.onload = loadScript;
- </script>
- </head>
- <body>
- <div id="map" style="width:500px;height:320px"></div>
- </body>
- </html>
兼容性
浏览器:IE 6.0+、Firefox 3.6+、Opera 9.0+、Safari 3.0+、Chrome
操作系统:Windows、Mac、Linux
移动平台:iPhone、Android
获取技术支持途径
如果您在使用百度地图API中遇到问题,请尝试通过以下途径解决:
确认您使用了正确的地图API地址。
访问百度地图API论坛,查找相关问题的帖子,或者将您的问题发布到贴吧中。
查看常见问题。
加入百度HI群。