【vue2高德地图api】05-关于公交线路的案例实战

news2024/11/22 15:48:32

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、创建页面,以及路由
    • 1.创建layout.vue
    • 2.再创建该编写的主页面route.vue
  • 二、使用步骤
    • 1.引入高德地图
    • 2.初始化map
    • 3. 初始化线路查询
    • 4.运行代码,查看结果
  • 三、渲染页面
    • 3.1 列表变量赋值,以及再次封装
    • 实现页面效果
    • 3.2 html代码
    • 3.3 css代码
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

临时加了个功能,需要查询公交线路。

类似下图,我会做的简单一点,本篇教程就不加下拉触底加载和上拉刷新了。只查询一遍,一次返回20条数据即可、顺便加一个搜索框
在这里插入图片描述

  • 官方文档入口
    在这里插入图片描述

提示:以下是本篇文章正文内容,下面案例可供参考

一、创建页面,以及路由

先写路由了

  {
    path: '/line', // 公交导航
    name: 'line',
    component: () => import('../views/line/layout.vue'),
    children: [
      {
        path: 'route',
        name: 'lineRoute',
        component: () => import('@/views/line/route.vue'),
        meta: {
          title: '长沙县城乡公交路线',
          keepAlive: false,
        },
      },
    ],
  },

1.创建layout.vue

在这里插入图片描述

<template>
  <div>
    <keep-alive>
      <router-view v-if="$route.meta.keepAlive" />
    </keep-alive>
    <router-view v-if="!$route.meta.keepAlive" />
  </div>
</template>

<script>
export default {
  name: 'lineLayout',
};
</script>

2.再创建该编写的主页面route.vue

<template>
  <div class="container"></div>
</template>

<script>
export default {
  name: 'vinit',
  components: {},
  data() {
    return {};
  },
  computed: {},
  watch: {},
  filters: {},
  created() {},
  mounted() {
    this.init();
  },
  methods: {
    init() {
      this.getList();
    },
    getList() {},
  },
};
</script>

<style scoped lang="scss">
.container {
}
</style>

二、使用步骤

1.引入高德地图

代码如下(示例):

由于该页面不需要显示地图,所以页面不会用到容器,只负责渲染就好了。

import AMapLoader from '@amap/amap-jsapi-loader';
export default {
  name: 'vinit',
  components: {},
  data() {
    return {
      lineSearch: null, // 查询实例
      AMap:null, // 实例
      lineList: [], // 查询到的线路列表
      lineName: '', // 查询name
    .....

2.初始化map

代码如下(示例):

    initMap() {
      AMapLoader.load({
        key: this.mapJsKey, // 申请好的Web端开发者Key,首次调用 load 时必填
        //2.0版本太卡了 ,所以使用的1.4.0版本  其插件也有不同  如:ToolBar
        version: '1.4.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
        resizeEnable: true, // 定位到当前位置
        plugins: [
          'AMap.LineSearch', // poi搜索
        ], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
      }).then((AMap) => {
        this.AMap = AMap;
        this.getLineSearch();
      });
    },

3. 初始化线路查询

    // 线路查询
    getLineSearch() {
      this.lineSearch = new this.AMap.LineSearch({
        pageIndex: 1, //页码,默认值为1
        pageSize: 20, //单页显示结果条数,默认值为20,最大值为50
        city: '长沙', //限定查询城市,可以是城市名(中文/中文全拼)、城市编码,默认值为『全国』
        extensions: 'all', //是否返回公交线路详细信息,默认值为『base』
      });
      //执行公交路线关键字查询
      this.lineSearch.search('905', function (status, result) {
        //打印状态信息status和结果信息result
        console.log(status, result);
      });
    },

代码如下图所示,记得把那个没用的getList删掉
在这里插入图片描述

4.运行代码,查看结果

在这里插入图片描述
我上面给的参数是,905,我经常坐这个车子,如果你跟着我的步骤一步步来的,那么祝贺你,已经会高德地图了。如果你有自己的思路想法,这篇后面的不用看我的了,本篇后面内容是渲染页面,并且加一个搜索框。


三、渲染页面

3.1 列表变量赋值,以及再次封装

这段代码是赋值lineList列表,如果不复制我的,一定要记得,把function改为箭头函数

getSearchList() {
  //执行公交路线关键字查询
  this.lineSearch.search(this.lineName, (status, result) => {
    //打印状态信息status和结果信息result
    console.log(status, result.lineInfo);
    if (status === 'complete' && result.info === 'OK') {
      this.lineList = result.lineInfo;
    }
  });
},

改写之后如下,把初始化线路查询分开。
在这里插入图片描述

实现页面效果

效果如下,如果你另有想法,就不用看我的了。
在这里插入图片描述

3.2 html代码

<template>
  <div class="container">
    <van-search v-model="lineName" placeholder="请输入线路名称" @search="getSearchList" />
    <span style="margin-left: 10px; color: #999">如果您要搜索905路公交车,请输入905</span>
    <section class="line-list">
      <article v-for="item in lineList" :key="item.id" class="line-item">
        <h4>{{ item.name }}</h4>
        <div class="line-info">
          <p>全长{{ Number(item.distance).toFixed(2) }}千米</p>
          <p>票价{{ item.total_price }}元</p>
        </div>
        <p v-if="item.stime.length>0">运营时间{{ item.stime }} {{ item.etime }}</p>
      </article>
    </section>
  </div>
</template>

3.3 css代码

<style scoped lang="scss">
.container {
  background-color: #f4f4f4;
  height: 100vh;
  overflow: auto;
  .line-list {
    margin: 20px;
    .line-item {
      padding: 20px;
      margin-bottom: 20px;
      background-color: #fff;
      .line-info{
        display: flex;
        justify-content: space-between;
        >p{
            margin: 10px 0;
        }
      }
      p{
        color: #666;
      }
    }
  }
}
</style>

总结

提示:这里对文章进行总结:

如果没看过我之前的文章,可能对于初始化map中的

  • this.mapJsKey

会报错。

这个在main.js中配置就好了

在这里插入图片描述
安全密钥和mapJsKey都不能少

建议从系列文章01开始看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1180375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工程(十四)——ubuntu20.04 PL-VINS

博主创建了一个科研互助群Q&#xff1a;772356582&#xff0c;欢迎大家加入讨论。这是一个科研互助群&#xff0c;主要围绕机器人&#xff0c;无人驾驶&#xff0c;无人机方面的感知定位&#xff0c;决策规划&#xff0c;以及论文发表经验&#xff0c;以方便大家很好很快的科研…

PTA 编程题(C语言)-- 连续因子

题目标题&#xff1a; 连续因子 题目作者 陈越 浙江大学 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3567&#xff0c;其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N&#xff0c;要求编写程序求出最长连续因子的个数&#xff0c…

虚拟数字人引领企业创新浪潮

在人工智能和计算机图形学快速发展的今天&#xff0c;虚拟数字人正逐渐成为企业形象展示的新趋势。作为一种融合了多种技术的数字化形象&#xff0c;虚拟数字人具有逼真的外观、情感表达和思维逻辑&#xff0c;能够与人类进行自然、流畅的互动&#xff0c;为企业提供全天候、个…

【uniapp+vue3/vue2】ksp-cropper高性能图片裁剪工具,详解

效果图&#xff1a; 1、ksp-cropper是hbuilder插件市场中的一款插件&#xff0c;兼容vue2和vue3 ksp-cropper插件安装地址&#xff0c;直接点击跳转 2、插件用法相对简单 &#xff08;1&#xff09;只要url有值就会显示插件&#xff0c;为空就会隐藏插件 &#xff08;2&#…

FineReport----报表模板入门

FineReport----报表模板入门教程1 FineReport就一款类Excel操作界面的报表工具&#xff0c;通过拖拖拽拽简单实现报表制作&#xff0c;实现数据展示、数据查询、数据录入功能&#xff0c;并且支持图形多样化展示。 一、入门小例子 1. 打开设计器 启动FineReport设计器&…

Window 11中安装Rust编译环境和集成开发环境

https://blog.csdn.net/weixin_43882409/article/details/87616268是我参考的一篇文章。 下载 先到https://www.rust-lang.org/learn/get-started&#xff0c;下载64-Bit&#xff08;64位&#xff09;的rustup-init.exe文件。 使用其他方式进行安装的网址https://forge.rust…

视频特效编辑软件 After Effects 2022 mac中文版介绍 (ae 2022)

After Effects 2022 mac是一款视频特效编辑软件&#xff0c;被称为AE&#xff0c;拥有强大的特效工具&#xff0c;旋转&#xff0c;用于2D和3D合成、动画制作和视觉特效等&#xff0c;效果创建电影级影片字幕、片头和过渡&#xff0c;是一款可以帮助您高效且精确地创建无数种引…

初识面向对象(类和对象)

目录 1. 面向对象的初步认知 2.面向对象与面向过程 3.类定义和使用 4.类的定义格式 练习 5.类的实例化 什么是实例化 6.this引用 为什么要有this引用 什么是this引用 this引用的特性 7.对象的初始化 默认初始化 就地初始化 使用构造方法初始化 1. 面向对象的初步…

大数据毕业设计选题推荐-营业厅营业效能监控平台-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Logstash与FileBeat详解以及ELK整合详解

背景 日志管理的挑战&#xff1a; 关注点很多&#xff0c;任何一个点都有可能引起问题日志分散在很多机器&#xff0c;出了问题时&#xff0c;才发现日志被删了很多运维人员是消防员&#xff0c;哪里有问题去哪里 集中化日志管理思路&#xff1a; 日志收集》格式化分析》检索…

一种以RGB颜色登录的密码实现

当用户点击了某些密码之后&#xff0c;就可以登录成功&#xff0c;主要用于安全码&#xff0c;辅助安全手段。 颜色密码虽然不方便用键盘输入&#xff0c;只能用鼠标点击&#xff0c;但是容易记忆&#xff0c;也不容易被黑客攻陷。

PC9502双节锂电池充电管理芯片高精度外围元件少SOP8封装

■ 产品概述 PC9502 系列是一款双节锂电池充电管理芯片。 该芯片 包含了充电状态检测、充电过程、温度检测等&#xff0c;内部还集成 一个高精度的基准电压模块&#xff0c;此芯片采用 SOP-8 封装。 PC9502 充电包含三种模式&#xff1a;预充电&#xff0c;恒流充电&#x…

【REST API】什么是REST API?

参考&#xff1a; 什么是 REST API 一文读懂 (RESTful API)_哔哩哔哩_bilibili -------------------------------------------------------------------------------------------------------------------------------- REST API&#xff0c;又被称作RESTful API&#xff0c…

国内私募机构出海或成趋势?| A+CLUB深圳沙龙圆桌论坛

上篇国君国际、华锐技术、亚马逊云科技和彭博的四位专家对私募出海涉及到的业务和技术领域做了专业分享&#xff0c;本篇将为大家带来干货满满的圆桌论坛内容。此次圆桌由华锐技术机构业务总监-葛云娟主持&#xff0c;国君国际跨境业务销售主管-毛哲、清华大学教授-林健武、衍盛…

微服务之Nacos配置管理

文章目录 一、统一配置管理Nacos操作二、统一配置管理java操作1.引入依赖2.创建配置文件3.测试4.总结 三、Nacos配置自动更新1.添加注解RefreshScope2.使用ConfigurationProperties注解3.总结 四、Nacos多环境配置共享1.配置文件2.多种配置的优先级3.总结 一、统一配置管理Naco…

Spire.Office for .NET 8.10.2 同步更新-Crk

Spire.Office for .NET是 E-iceblue 提供的企业级 Office .NET API 的组合。它包括Spire.Doc、Spire.XLS、Spire.Spreadsheet、Spire.Presentation、Spire.PDF、Spire.DataExport、Spire.OfficeViewer、Spire.PDFViewer、Spire.DocViewer、Spire.Barcode和Spire.Email。Spire.O…

二.831(KMP)字符串详解

ne[3]枚举2次 ne[4],枚举3次 ne[5],枚举4次]b在后面了,就一个b就不可能在前面了]b舍弃 ne[6],枚举i-1次]一眼看最长相等前后缀,就是aab,aab ne[7],aaba,aaba ne[8],枚举i-1次]aabaa,aabaa 同理 怎么快速看呢!我想把b给夹起来]把中间夹的数越多就多 其实 加的有规律,最…

移动硬盘无法识别怎么办?有哪些免费的读写硬盘工具

在日常生活中&#xff0c;我们都习惯于把移动硬盘作为常用的存储介质&#xff0c;用来储存一些文档资料。那么&#xff0c;如果遇上硬盘无法读取的问题&#xff0c;我们又该如何是好呢&#xff1f; 其实硬盘无法读取的问题还是比较常见的&#xff0c;通常有以下几种处理方法&a…

QT 实现两款自定义的温度计/湿度控件

文章目录 0 引入1、带有标尺的温度/湿度计控件1.头文件2.核心代码 2、竖起来的温度/湿度计控件1.头文件2.实现 3、引用 0 引入 QT原生控件没有实现如仪表盘或者温度计的控件&#xff0c;只好自己实现&#xff0c;文章代码部分参考引用的文章。直接上图 图一 带有标尺的温度计…

unity打AB包,AssetBundle预制体与图集(二)

第二步&#xff1a;加载AB包的资源&#xff0c;用于显示 using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.Networking; using UnityEngine.U2D; using UnityEngine.UI;public class GameLaunch : MonoBe…