百度地图绘制行车路线_行车路线图怎么制作_小爱2的博客-程序员秘密

技术标签: react  百度地图  

百度地图开发平台 http://lbsyun.baidu.com/
百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。免费对广大用户开放。
1、创建应用生成ak
2、在index.html中引用

<!-- 引入百度地图api -->
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=秘钥"></script>

3、在组件中使用
地图显示区

 <div id="orderDetailMap" className="order-map"></div>

绘制地图

//绘制地图
    renderMap = (result) => {
        this.map = new window.BMap.Map('orderDetailMap');
        // this.map.centerAndZoom('北京', 11);
        // 添加地图控件
        this.addMapControl();
        // 调用路线图绘制方法
        this.drawBikeRoute(result.position_list);
        // 调用服务区绘制方法
        this.drwaServiceArea(result.area);
    }
    // 添加地图控件
    addMapControl = () => {
        let map = this.map;
        map.addControl(new window.BMap.ScaleControl({ anchor: window.BMAP_ANCHOR_TOP_RIGHT }));
        map.addControl(new window.BMap.NavigationControl({ anchor: window.BMAP_ANCHOR_TOP_RIGHT }));
    }
    // 绘制用户的行驶路线
    drawBikeRoute = (positionList) => {
        let startPoint = '';
        let endPoint = '';
        if (positionList.length > 0) {
            let first = positionList[0];
            let last = positionList[positionList.length - 1];
            startPoint = new window.BMap.Point(first.lon, first.lat);
            let startIcon = new window.BMap.Icon('/assets/start_point.png', new window.BMap.Size(36, 42), {
                imageSize: new window.BMap.Size(36, 42),
                anchor: new window.BMap.Size(18, 42)
            })
            //起点
            let startMarker = new window.BMap.Marker(startPoint, { icon: startIcon });
            this.map.addOverlay(startMarker);

            endPoint = new window.BMap.Point(last.lon, last.lat);
            let endIcon = new window.BMap.Icon('/assets/end_point.png', new window.BMap.Size(36, 42), {
                imageSize: new window.BMap.Size(36, 42),
                anchor: new window.BMap.Size(18, 42)
            })
            //终点
            let endMarker = new window.BMap.Marker(endPoint, { icon: endIcon });
            this.map.addOverlay(endMarker);

            // 连接路线图
            let trackPoint = [];
            positionList.map((point)=>{
                trackPoint.push(new window.BMap.Point(point.lon, point.lat));
            })
            // for (let i = 0; i < positionList.length; i++) {
            //     let point = positionList[i];
            //     trackPoint.push(new window.BMap.Point(point.lon, point.lat));
            // }

            let polyline = new window.BMap.Polyline(trackPoint, {
                strokeColor: '#1869AD',
                strokeWeight: 3,
                strokeOpacity: 1
            })
            this.map.addOverlay(polyline);//折线
            this.map.centerAndZoom(endPoint, 11);//根据终点定位地图中心
        }
    }
    // 绘制服务区
    drwaServiceArea = (positionList)=>{
        // 连接路线图
        let trackPoint = [];
        positionList.map((point)=>{
            trackPoint.push(new window.BMap.Point(point.lon, point.lat));
        })
        // 绘制服务区
        let polygon = new window.BMap.Polygon(trackPoint, {
            strokeColor: '#CE0000',
            strokeWeight: 4,
            strokeOpacity: 1,
            fillColor: '#ff8605',
            fillOpacity:0.4
        })
        this.map.addOverlay(polygon);
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zyxzp2012/article/details/88783729

智能推荐

leetcode 847. 访问所有节点的最短路径 BFS+位运算_Viscu的博客-程序员秘密

给出 graph 为有 N 个节点(编号为 0, 1, 2, …, N-1)的无向连通图。 graph.length = N,且只有节点 i 和 j 连通时,j != i 在列表 graph[i] 中恰好出现一次。 返回能够访问所有节点的最短路径的长度。你可以在任一节点开始和停止,也可以多次重访节点,并且可以重用边。 示例 1: 输入:[[1,2,3],[0],[0...

摄像机识别未戴安全帽 YOLOv5_燧机科技的博客-程序员秘密

摄像机识别未戴安全帽系统利用边缘计算+机器学习与深度学习技术以及yolo深度网络模型架构,对现场画面人员未戴安全帽行为进行实时分析检测。YOLO是You Only Look Once的缩写。这也是为了特别突出YOLO区别于两阶段算法的特点,从名字就可以感受到,YOLO算法速度很快,事实上也是如此。可以看出在同样的设备上,YOLO可以达到45帧每秒的速度。

SSL握手协议详细流程_ssl握手协议的主要步骤有_Listen2You的博客-程序员秘密

导读 SSL(Secure Socket Layer)安全套接字协议是运行在应用层和TCP层之间的安全机制。保证上层应用数据传输的保密性、完整性以及传输双发身份的合法性。 概述SSL(Secure Socket Layer)安全套接字协议是运行在应用层和TCP层之间的安全机制。保证上层应用数据传输的保密性、完整性以及传输双发身份的合法性。1.传输加密性:握手协议定义会话密钥后,...

Mac下修改mysql数据库默认字符编码__逍遥的博客-程序员秘密

mysql默认的编码是latin1,它不支持中文,所以我们一般需要修改他的默认编码格式。打开终端1. 进入root权限sudo -i 2. cp/usr/local/mysql/support-files/my-default.cnf/etc/my.cnf3. vi /etc/my.cnf编辑 [mysqld]default-storage-engine=INNODB

驱动开发工具DriverStudio官方说明_driverstdio_zzr173的博客-程序员秘密

提高设备驱动程序的开发速度 视窗系统设备驱动程序的综合开发工具 NuMega DriverStudio – 设备驱动程序开发工具中的极品     设备驱动程序常常被认为是开发精英们涉足的领域,如今已成为技术创新中的一个严重的瓶颈。由于它难于编写,运行失败时又会产生灾难性的后果,所以微软公司将设备驱动程序视为造成视窗系统稳定性问题的首要原因。     随着DriverStudio的面市,康博软件公司

Android学习之路(一)-Activity的生命周期和启动模式-1_Cory_boyu的博客-程序员秘密

Android学习之路(一)-Activity的生命周期和启动模式-1

随便推点

使用python进行科研画图_python 科学绘图_xyfyi45的博客-程序员秘密

Figure1.py# -*- coding: utf-8 -*-"""Created on Mon Dec 28 13:47:07 2020"""##+++++++++++++++++++++++++++(一)绘图所需的基础库+++++++++++++++++++++++++++##import pandas as pd # 用于处理表格数据import numpy as np # 用于科学计算import matplotlib.pyplot as plt # 绘图的核心库fr

《算法很美》3.分治思想 (python实现) 【3】堆,二叉树,排序_Magic__KID的博客-程序员秘密

二叉树简介用数组表示一棵树,第一个元素是根节点,某一节点位置为i,其左子节点为2i+1,右子节点2i+2,父节点为(i-1)//2树的遍历顺序:前序遍历,中序遍历,后序遍历(前中后对应的根的位置,前序遍历为根左右,中序遍历为左根右,后序遍历为左右根)#树的三种遍历顺序def preorder(alist,i): if i&gt;len(alist)-1: return if i&lt;=len(alist)-1: print(alist[i])

timespec编程报错_timer_t unknow type name timer_t_Janet CHU的博客-程序员秘密

timespec time_start;       timespec time_end;       //clock_gettime(CLOCK_REALTIME, &time);  //获取相对于1970到现在的秒数;      clock_gettime(CLOCK_REALTIME, &time_start);      sleep(2);      clock

CSS:解决高度塌陷的三种方式_真的要穿格子衫吗的博客-程序员秘密

CSS:解决高度塌陷的三种方什么是高度塌陷: 父盒子自动适应子盒子,子盒子float之后,父盒子的高度变为0。解决高度塌陷的三种方式:w3c组织推荐的方式:多加一个子盒子(只是用来解决高度塌陷,并不会破坏布局),class=clearfix .clearfix{ clear: both; }给父盒子的样式加上:overflow: hidden;...

Altium Designer初试-贴片51系统板_dxp80c51_My_Z的博客-程序员秘密

经过一个多小时的无顾忌的瞎布线,终于用Altium Designer画出了第一个完整的PCB图虽然比较烂,但终于开始入门了哈哈。。。。附图本人初学,还请高手指点。。。哈哈哈。。挺开心的