欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解Javascript百度地图接口开发文档中的类和方法

程序员文章站 2023-04-01 21:02:47
javascript api v2.0介绍 百度地图javascript api是一套由javascript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互...

javascript api v2.0介绍

百度地图javascript api是一套由javascript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用,包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。

该套api免费对外开放。自v1.5版本起,您需先申请密钥(ak)才可使用,接口(除发送短信功能外)无使用次数限制。

javascript api首家支持https,如需要申请https服务,请您认证企业信息,成为企业认证用户后,https将自动开通,同时获得更高的服务配额。

注意:仅javascript api

v2.0版本支持https,其他javascript api版本均不支持。使用https服务,请先检查您的版本以及配置注意事项。

调用api的基本文件格式

获取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">

其中参数v为api当前的版本号,目前最新版本为2.0。在1.2版本之前您还可以设置services参数,以告知api是否加载服务部分,true表示加载,false表示不加载,默认为true。。

创建地图实例

var map = new

bmap.map("container");

//创建点坐标

var point = newbmap.point(104.045,30.559);

//地图初始化

map.centerandzoom(point,15);

百度地图控件

向地图添加控件:

map.addcontrol(newbmap.navigationcontrol());



//控件位置:

var opts = {offset: newbmap.size(150, 5)}

map.addcontrol(newbmap.scalecontrol(opts));

//修改控件配置:

var opts = {type:bmap_navigation_control_small}

map.addcontrol(newbmap.navigationcontrol(opts));

地图覆盖物

所有叠加或覆盖到地图的内容,我们统称为地图覆盖物。如标注、矢量图形元素(包括:折线和多边形和圆)、信息窗口等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动。

可以使用map.addoverlay方法向地图添加覆盖物,使用map.removeoverlay方法移除覆盖物,注意此方法不适用于infowindow。

//创建标注:

var marker = newbmap.marker(new bmap.point(104.045,30.559));

//将标注添加到地图中:

map.addoverlay(marker);

地图信息窗口提示

信息窗口在地图上方的浮动显示html内容。信息窗口可直接在地图上的任意位置打开,也可以在标注对象上打开(此时信息窗口的坐标与标注的坐标一致)。您可以使用infowindow来创建一个信息窗实例,注意同一时刻地图上只能有一个信息窗口处于打开状态。

var opts = {

width : 250,//信息窗口宽度

height: 100,//信息窗口高度

title : "hello"//信息窗口标题

}

var infowindow = newbmap.infowindow("world", opts);//创建信息窗口对象

map.openinfowindow(infowindow,map.getcenter());//打开信息窗口

地图信息窗口提示(事件触发显示)

事件方法与map事件机制相同。可参考事件部分

监听标注事件:

marker.addeventlistener("click",function(){

alert("您点击了标注");

});

给标注添加点击事件:

marker.addeventlistener("click",function(){

map.openinfowindow(infowindow,map.getcenter());

});

定位(浏览器定位)

geolocation地图定位,返回用户当前的位置。此方法利用浏览器的geolocation接口获取用户当前位置,不支持的浏览器将无法获取。

创建geolocation对象实例:

var geolocation = newbmap.geolocation();

geolocation.getcurrentposition(function(r){

if(this.getstatus() == bmap_status_success){ //判断状态

var mk = new bmap.marker(r.point);//创建一个地图标注

map.addoverlay(mk);

map.panto(r.point);//转向获取的地理坐标所在位置

alert('您的位置:'+r.point.lng+','+r.point.lat);

}

else {

alert('failed'+this.getstatus());

}

})

定位(ip定位)

localcity此类用于获取用户所在的城市位置信息。(根据用户ip自动定位到城市)

创建localcity对象实例:

mycity = new bmap.localcity();

mycity.get(function(e){

map.setcenter(e.name);

alert(e.name);

});

定位(经纬度定位)

点击获取经纬度实例:

map.addeventlistener("click",function(e){

alert(e.point.lng + "," + e.point.lat);

});

根据经纬度定位实例:

var new_point = new bmap.point(116.299689,40.1196618);

var marker = newbmap.marker(new_point);//创建标注

map.addoverlay(marker);//将标注添加到地图中

map.panto(new_point);

地址解析

var mygeo = newbmap.geocoder();//创建地址解析器实例

//将地址解析结果显示在地图上,并调整地图视野

mygeo.getpoint("北京市昌平区回龙观地铁站", function(point){

if (point) {

map.centerandzoom(point, 15);

map.addoverlay(new bmap.marker(point)); //在地图上标注地理位置

}else{

alert("您选择地址没有解析到结果!");

}

}, "北京市");

逆地址解析

geocoder类用于获取用户的地址解析

var geoc = newbmap.geocoder();

map.addeventlistener("click",function(e){

var pt = e.point; //点击位置的坐标点

geoc.getlocation(pt, function(rs){

var addcomp = rs.addresscomponents;

alert(addcomp.province + ", " +addcomp.city + ", " + addcomp.district + ", " +addcomp.street + ", " + addcomp.streetnumber);

});

步行规划

walkingroute用于获取步行路线规划方案。创建一个步行导航实例。location表示检索区域,类型可为地图实例、坐标点或城市名称的字符串。当参数为地图实例时,检索位置由当前地图中心点确定;当参数为坐标时,检索位置由该点所在位置确定;当参数为城市名称时,检索会在该城市内进行。

步行规划实例:

var walking = newbmap.walkingroute(map, {renderoptions:{map: map, autoviewport: true}});

walking.search("天坛公园", "故宫");

获取步行导航的结果显示实例:

var walking = newbmap.walkingroute(map, {renderoptions: {map: map, panel: "r-result",autoviewport: true}});

walking.search("天坛公园", "故宫");

驾车规划

drivingroute此类用于获取驾车路线规划方案

驾车线路规划实例:

var driving = newbmap.drivingroute(map, {renderoptions: {map: map, panel: "r-result",autoviewport: true}});

driving.search("女子医院", "王府井广场");

公交检索

transitroute用于获取公交路线规划方案

公交检索实例:

var transit = newbmap.transitroute(map, {renderoptions: {map: map, panel:"r-result"}});

transit.search("中医大省医院", "明宇金融广场");

信息检索

localsearch用于位置检索、周边检索和范围检索

关键字检索实例:

var local = new bmap.localsearch(map,{

renderoptions:{map: map}

});

local.search("景点");

本地检索结果实例:

var local = newbmap.localsearch(map, {

renderoptions: {map: map, panel: "r-result"}

});

local.search("餐饮");

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。