百度地图api-基本用法总结

以下内容已录制
点击观看视频
在这里插入图片描述
还有更多好玩的百度地图效果展示
百度地图效果
在这里插入图片描述

百度地图api 一些常用的用法总结(笔记)

参考百度地图官方api:百度地图官方api
百度地图提供的拾取坐标: 百度地图提供的拾取坐标
注:百度地图api文档是真详细

加载地图前提:

  1. 申请百度地图账号
  2. 申请开发者填写开发者信息
  3. 申请AK 点击查看申请步骤

一、 加载地图

加载地图步骤

  1. 新建一个html页面
  2. 引入js
<script type="text/javascript" src="http://api.map.baidu.com/api?type=webgl&v=1.0&ak=申请的AK"></script>
  1. 写下样式
<style>
        html, body, #container {
            width: 100%;
            height: 100%;
            overflow: hidden;
            margin: 0;
            padding: 0
        }
</style>
  1. 创建地图容器元素
<div id="container"></div>
  1. 开始写js 初始化地图
//1.创建地图实例
var map = new BMapGL.Map("container");
//2.设置中心经纬度  这里我们使用BMapGL命名空间下的Point类来创建一个坐标点。Point类描述了一个地理坐标点,其中120.872845表示经度,32.021089表示纬度。(为南通濠河风景区坐标)
var point = new BMapGL.Point(120.872845, 32.021089);
//3.在创建地图实例后,我们需要对其进行初始化,BMapGL.Map.centerAndZoom()方法要求设置中心点坐标和地图级别。 地图必须经过初始化才可以执行其他操作 值一般是3-19
map.centerAndZoom(point, 15);

map.centerAndZoom(point, 15);的最终效果
值越大 地图越大
在这里插入图片描述

map.centerAndZoom(point, 10);的最终效果
值越小 地图越小
在这里插入图片描述

二、 添加控件

var map = new BMapGL.Map("container");//创建地图实例
var point = new BMapGL.Point(120.872845, 32.021089);//设置中心经纬度
map.centerAndZoom(point, 15);//初始化地图
map.enableScrollWheelZoom(true); //开启鼠标滚轮 地图可以进行放大 缩小
map.addControl(new BMapGL.ScaleControl()); // 添加比例尺控件 左下角显示
map.addControl(new BMapGL.ZoomControl());// 添加缩放控件 右下角显示
map.addControl(new BMapGL.CityListControl());  // 添加城市列表控件 左上角
map.addControl(new BMapGL.MapTypeControl());// 地图类型 右上角显示

2.1 开启鼠标滚轮

map.enableScrollWheelZoom(true); //开启鼠标滚轮 地图可以进行放大 缩小

2.2 添加比例尺控件

map.addControl(new BMapGL.ScaleControl()); // 添加比例尺控件 左下角显示

在这里插入图片描述

2.3 添加缩放控件

map.addControl(new BMapGL.ZoomControl());// 添加缩放控件 右下角显示
在这里插入图片描述

2.4 添加城市列表控件

map.addControl(new BMapGL.CityListControl()); // 添加城市列表控件 左上角
在这里插入图片描述

2.5 添加地图类型

map.addControl(new BMapGL.MapTypeControl());// 地图类型 右上角显示
可切换3D地球模式
在这里插入图片描述

三、 文本标注

3.1添加默认的文本标注

//向地图添加了一个文本标注,并使用默认的标注样式:
var content = "hello world";
var label = new BMapGL.Label(content, {       // 创建文本标注
    position: point,                          // 设置标注的地理位置
    offset: new BMapGL.Size(10, 20)           // 设置标注的偏移量
})
map.addOverlay(label);                        // 将标注添加到地图中

在这里插入图片描述

3.2添加自定义样式的文本标注

//地图添加大号 文本标注
var content = 'hello world';
var label = new BMapGL.Label(content, {       // 创建文本标注
    position: point,
    offset: new BMapGL.Size(10, 20)
})
map.addOverlay(label);                        // 将标注添加到地图中
label.setStyle({                              // 设置label的样式
    color: '#000',
    fontSize: '50px',
    border: '2px solid blue'
})

在这里插入图片描述

3.3添加文本标注监听

//监听标注事件
label.addEventListener("click", function () {
    alert("您点击了文本标注");
});

在这里插入图片描述

四、 地图添加标注点

4.1 添加默认标注

添加成功后 会有一个默认的红色的定位图标显示在地图中

//Marker是一个用来往地图上添加点标记的类。使用它将任何你希望用户看到的兴趣点标注在地图上。
//API提供了默认图标样式,您也可以通过Icon类来指定自定义图标。Marker的构造函数的参数为Point和MarkerOptions(可选)。
//注意:当您使用自定义图标时,标注的地理坐标点将位于标注所用图标的中心位置,您可通过Icon的offset属性修改标定位置。
var point = new BMapGL.Point(120.872845, 32.021089);
var marker = new BMapGL.Marker(point);        // 创建标注
map.addOverlay(marker);                     // 将标注添加到地图中

在这里插入图片描述

4.2 添加自定义图片 标注(应用较多)

//定义标注图标 通过Icon类可实现自定义标注的图标,下面示例通过参数MarkerOptions的icon属性进行设置,您也可以
//marker.setIcon()方法。
var myIcon = new BMapGL.Icon("../images/love.png", new BMapGL.Size(23, 25), {
    // 指定定位位置。
    // 当标注显示在地图上时,其所指向的地理位置距离图标左上
    // 角各偏移10像素和25像素。您可以看到在本例中该位置即是
    // 图标中央下端的尖角位置。
    anchor: new BMapGL.Size(10, 25),
    // 设置图片偏移。
    // 当您需要从一幅较大的图片中截取某部分作为标注图标时,您
    // 需要指定大图的偏移位置,此做法与css sprites技术类似。
    //imageOffset: new BMapGL.Size(0, 0 - 25)   // 设置图片偏移
});
//创建标注对象并添加到地图
var marker = new BMapGL.Marker(point, { icon: myIcon });
map.addOverlay(marker);

在这里插入图片描述

4.3 设置图标可拖拽

enableDragging: true//设置图标可拖拽

var marker = new BMapGL.Marker(point, {
	icon: myIcon,
	enableDragging: true//设置图标可拖拽
});

4.4 添加地图标注监听

点击标注 出发点击事件

marker.addEventListener("click", function () {
    alert("您点击了自定义标注");
});

五、信息窗口

5.1 添加信息窗口

var point = new BMapGL.Point(120.872845, 32.021089);
var opts = {
    width: 250,     // 信息窗口宽度
    height: 100,    // 信息窗口高度
    title: "Hello World"  // 信息窗口标题
}
let content = `<table><tr><td>1</td><td>2</td><td>3</td></tr></table>`;
var infoWindow = new BMapGL.InfoWindow(content, opts);  // 创建信息窗口对象
map.openInfoWindow(infoWindow, point);        // 打开信息窗口

//同时监听标注的点击事件
marker.addEventListener("click", function () {
    map.openInfoWindow(infoWindow, point);        // 打开信息窗口
});

在这里插入图片描述

六、 设置地图3D视觉+设置天空颜色

//设置地图3D视觉
map.setHeading(64.5);//旋转角度
map.setTilt(73);//地图倾斜
//设置天空颜色
map.setDisplayOptions({
    skyColors: ['rgba(186, 0, 255, 0)', 'rgba(186, 0, 255, 0.2)']//天空颜色
})

在这里插入图片描述

七、 交通流量图层

查看交通拥堵状况 红色为拥堵

var map = new BMapGL.Map("container");   // 创建地图实例
var point = new BMapGL.Point(121.441661, 31.173661);   // 创建点坐标
map.centerAndZoom(point, 15);                    // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true);                 // 开启鼠标滚轮缩放
map.setTrafficOn();                              // 添加交通流量图层

在这里插入图片描述

八、出行路线规划

8.1 驾车路线规划

传入起点和终点的两个ip地址,
可计算出驾车的距离和通行时间

var map = new BMapGL.Map("container");
map.centerAndZoom(new BMapGL.Point(121.187484, 31.869261), 12);
var output = '驾车需要:';
var start = new BMapGL.Point(121.187484, 31.869261);
var end = new BMapGL.Point(121.189752, 31.86958);
var driving = new BMapGL.DrivingRoute(map, {
    renderOptions: { map: map, autoViewport: true },
    onSearchComplete: function (results) {
        if (driving.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        output += '总时长:' + plan.getDuration(true);  //获取时间
        output += '总路程:' + plan.getDistance(true);  //获取距离
        $('#result').css('display', 'block');
        $('#result').html(output);
    },
});
driving.search(start, end);

在这里插入图片描述

8.2 公交路线规划

传入起点和终点的两个ip地址,
可计算出公交行驶的距离和通行时间

var map = new BMapGL.Map('container');
map.centerAndZoom(new BMapGL.Point(121.171548, 31.884098), 12);
var output = '坐公交车需要:';
var transit = new BMapGL.TransitRoute(map, {
    renderOptions: { map: map },
    onSearchComplete: function (results) {
        if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        output += '总时长:' + plan.getDuration(true);  //获取时间
        output += '总路程:' + plan.getDistance(true);  //获取距离
        $('#result').css('display', 'block');
        $('#result').html(output);
    },
});
var start = new BMapGL.Point(121.171548, 31.884098);
var end = new BMapGL.Point(121.193466, 31.873612);
transit.search(start, end);

在这里插入图片描述

8.3 步行路线规划

传入起点和终点的两个ip地址,
可计算出步行的距离和通行时间

var map = new BMapGL.Map("container");
map.enableScrollWheelZoom();
map.centerAndZoom(new BMapGL.Point(121.187484, 31.869261), 12);
var output = '步行需要:';
var walking = new BMapGL.WalkingRoute(map, {
    renderOptions: { map: map, autoViewport: true },
    onSearchComplete: function (results) {
        if (walking.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        output += '总时长:' + plan.getDuration(true);  //获取时间
        output += '总路程:' + plan.getDistance(true);  //获取距离
        $('#result').css('display', 'block');
        $('#result').html(output);
    },

在这里插入图片描述

8.4 骑行路线规划

传入起点和终点的两个ip地址,
可计算出骑行的距离和通行时间

var map = new BMapGL.Map("container");
map.centerAndZoom(new BMapGL.Point(121.187484, 31.869261), 12);
var output = '骑行需要:';
var riding = new BMapGL.RidingRoute(map, {
    renderOptions: {
        map: map,
        autoViewport: true
    },
    onSearchComplete: function (results) {
        if (riding.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        output += '总时长:' + plan.getDuration(true);  //获取时间
        output += '总路程:' + plan.getDistance(true);  //获取距离
        $('#result').css('display', 'block');
        $('#result').html(output);
    },
});
var start = new BMapGL.Point(121.187484, 31.869261);
var end = new BMapGL.Point(121.189752, 31.86958);

在这里插入图片描述

九、 个性化地图

效果
在这里插入图片描述

登录 百度地图api官网
点击开发文档->个性化地图编辑器
在这里插入图片描述
开始使用
在这里插入图片描述
点击新建
在这里插入图片描述
选一个免费的模板 点击使用
在这里插入图片描述
点击编辑JSON 复制所有json代码
在这里插入图片描述
将复制的json对象赋值给styleJson 对象
map.setMapStyleV2({ styleJson: styleJson });即可渲染地图

在这里插入图片描述

  • 26
    点赞
  • 215
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
要在Vue2中使用百度地图API,可以使用vue-baidu-map插件来实现。首先,在入口文件main.js中引入该插件,并传入你申请的百度地图API Key。引用 具体步骤如下: 1. 首先,在入口文件main.js中引入vue-baidu-map插件,并传入你申请的百度地图API Key。代码如下: ```javascript import Vue from 'vue' import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, { ak: '你申请的key' }) ``` 2. 然后,在需要使用地图的组件中,可以通过在template中使用`<baidu-map>`标签来渲染地图,代码如下: ```html <template> <div> <baidu-map :center="center" :zoom="zoom"></baidu-map> </div> </template> ``` 其中,`:center`为地图的中心点坐标,`:zoom`为地图的缩放级别。 3. 在组件的script部分,定义`center`和`zoom`的值,以及其他地图相关的属性和方法,代码如下: ```javascript export default { data() { return { center: { // 地图中心点坐标 lng: 116.404, lat: 39.915 }, zoom: 13 // 地图缩放级别 } } } ``` 通过以上步骤,你就可以在Vue2中使用百度地图API了。记得替换代码中的`'你申请的key'`为你自己申请的百度地图API Key。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Vue2中百度地图API的使用](https://blog.csdn.net/m0_70015578/article/details/127875241)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Vue2.0中使用百度地图API的方法](https://blog.csdn.net/weixin_52479225/article/details/126579928)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星银色飞行船

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值