根据后端返回结果 高德回显路线

一:先引用高德的key 是一定的 其二呢 在所在页面引入

import AMap from "AMap";

二 :创建div 设置高宽

<div id="all-map" class="map"></div>
//css代码
.map {
  z-index: 10;
  width: 90%;
  height: 240px;
}

三: 定义方法 我这边是init()

//由于后端返回的数组不能直接渲染  所以需要做转换  例如:
 polylinearr2:[“123.97594,98.3874;123.97594,98.3874;123.97594,98.3874;123.97594,98.3874;123.97594,98.3874;” ]
 self.polylinearr= polylinearr2.split(";")  先把分号每一项分开来  self.polylinearr这个在下面path再去做处理  详情请看下方代码
init(){
   this.$nextTick(() => {
      var that = this
      var map = new AMap.Map("all-map", {//这里是上面div上面的id
        center: [120.182839, 30.243403], // [纬度,经度]
        resizeEnable: true,
        zoom: 13,
      });
      map.setMapStyle("amap://styles/macaron");//地图样式
      map.setFeatures(["bg", "point"]); // 多个种类要素显示
      // 定义图标信息
      var icon = new AMap.Icon({ //这里的icon是起点的大小图标
        // 图标尺寸
        size: new AMap.Size(14, 14),
        // 图标的取图地址
        image: require("../imgs/start.png"),
        // 图标所用图片大小
        imageSize: new AMap.Size(14, 14),
      });
      var icon1 = new AMap.Icon({ //这里是终点icon
        // 图标尺寸
        size: new AMap.Size(14, 14),
        // 图标的取图地址
        image: require("../imgs/end.png"),
        // 图标所用图片大小
        imageSize: new AMap.Size(14, 14),
      });
      // 文字描述内容
      //   var labelContent = "<span>起点</span>";
      //   // 文字描述显示位置
      //  var labelOffset = new AMap.Pixel(8, 7);
      // 绘制坐标点
      var marker = new AMap.Marker({
        icon: icon,
        position: this.positionstart,
        offset: new AMap.Pixel(0, 0),
        title: 1,
        text: 1,
        // label: {
        //   content: labelContent,
        //   offset: labelOffset
        // }
      });
      marker.setMap(map);//地图添加点位
      //   var labelContent = "<span>终点</span>";
      //    var labelOffset = new AMap.Pixel(8, 7);
      var marker2 = new AMap.Marker({
        icon: icon1,
        anchor: "center", //设置锚点
        position: this.positionend,
        // offset: new AMap.Pixel(-10, -28),
        offset: new AMap.Pixel(0, 0),
        title: 2,
        clickable: true,
        bubble: true,
        // label: {
        //   content: labelContent,
        //   offset: labelOffset
        // }
      });
      marker2.setMap(map);//地图添加点位
      var path = []
         for(var i = 0 ;i<that.polylinearr.length-1; i++){  //后端返回的是一个哥哥点位的大数组 这里是做处理
          var coor2 = that.polylinearr[i].split(",");  // 根据逗号分隔
         var p2 =new AMap.LngLat(coor2[0], coor2[1]);//new AMap.LngLat转换成地图所认识的
          path.push(p2)   把全部处理后的点位放在path
        }
  
      // console.log("path",path)
      // 创建折线实例
      var polyline = new AMap.Polyline({
        path:path,//这里就是上面处理过的点位数据
        isOutline: true,
        outlineColor: "#ffeeee", //'#ffeeee',
        borderWeight: 2,
        strokeWeight: 5,
        strokeColor: "#0091ff", //'#0091ff',
        lineJoin: "round",
        showDir: true,
      });
      // 将折线添加至地图实例
       polyline.setMap(map)//  地图塞进去
       map.setFitView(); //先创建这个才能线路  起终点能在所在区域都看得见
      // 传入覆盖物数组,仅包括polyline和marker1的情况
       map.setFitView([this.marker, this.marker2, this.polyline]);

    });
}

最终效果如下
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程的实战源码是我在 GitHub 上开源项目 spring-boot-projects 中的其中一个项目代码,目前已有 2300 多个 star,项目截图如下: 由于项目比较受大家欢迎,因此心中就出现了将它做成教学视频的想法,也就是你现在了解的这个课程《SpringBoot入门及前后端分离项目开发》,本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发。Spring Boot 介绍、前后端分离、API 规范等内容旨在让读者更加熟悉 SpringBoot 及企业开发中需要注意的事项并具有使用 SpringBoot 技术进行基本功能开发的能力;这最后的项目实战为课程的主要部分,我会带着大家实际的开发一个前后端分离的 Spring Boot 实践项目,让大家实际操作并从无到有开发一个线上项目,并学习到一定的开发经验以及其中的开发技巧,旨在让读者具有将 Spring Boot 真正应用于项目开发的能力; 以下为实践项目的页面和功能展示,分别为:登录页面 列表页面(分页功能) 图片上传功能 富文本编辑器整合使用 实践项目的主要功能和页面就是这些,通过项目展示大家也能够感受到,在实际应用开发中的高频次功能都已经实现,稍加修改就可以运用到企业开发中,整个项目的开发模式为前后端分离的模式,即 Spring Boot 提供后端接口,前端页面通过 Ajax 异步调用接口的方式与后端服务器进行交互并将数据填充至页面中,这也是目前企业开发中比较重用的开发模式,希望大家能够了解并且能够实际的上手开发。
可以通过设置表格数据的 `selected` 属性来实现多选数据的。假设后端返回的数据中包含一个 `selectedIds` 数组,表示已选中的数据的 ID,可以先遍历表格数据,将每条数据的 `selected` 属性设置为 `selectedIds` 数组中是否包含该条数据的 ID,然后在表格上添加一个 `@selection-change` 事件监听器,当用户手动勾选或取消勾选表格中的数据时,将新的选中数据的 ID 存入 `selectedIds` 数组中。 以下是一个示例代码,假设表格数据包含 `id` 和 `name` 两个字段: ```html <template> <el-table :data="tableData" @selection-change="handleSelectionChange" :select-on-indeterminate="false" :default-sort="{prop: 'id', order: 'ascending'}" :row-key="row => row.id" v-loading="loading"> <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="id" label="ID" sortable></el-table-column> <el-table-column prop="name" label="Name" sortable></el-table-column> </el-table> </template> <script> export default { data() { return { loading: false, tableData: [] } }, methods: { async fetchData() { this.loading = true; const response = await fetch('/api/data'); const data = await response.json(); this.tableData = data.map(item => ({ ...item, selected: false })); const selectedIds = data.filter(item => item.selected).map(item => item.id); this.tableData.forEach(item => { item.selected = selectedIds.includes(item.id); }); this.loading = false; }, handleSelectionChange(selection) { const selectedIds = selection.map(item => item.id); this.tableData.forEach(item => { item.selected = selectedIds.includes(item.id); }); } }, mounted() { this.fetchData(); } } </script> ``` 在上面的示例代码中,`fetchData` 方法通过 AJAX 请求获取后端数据,并将每条数据的 `selected` 属性初始化为 `false`。然后遍历后端返回的数据,将已选中的数据的 `selected` 属性设置为 `true`。在表格上添加了一个 `selection-change` 事件监听器,当用户手动勾选或取消勾选表格中的数据时,将选中的数据的 ID 存入 `selectedIds` 数组中,并遍历表格数据,将新的选中数据的 ID 存入 `selectedIds` 数组中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值