前端vue仿滴滴打车百度地图定位查找附近出租车或门店信息, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12982

效果图如下:

使用方法


<!-- 官方文档: https://dafrok.github.io/vue-baidu-map/#/zh/start/base --> #安装vue-baidu-map插件 npm install vue-baidu-map --save <!-- center: 地图中心点 zoom:地图放大比例 --> <baidu-map v-show="seen" class="bm-view" :center="centerPoint" :zoom="10"> <bm-control class='bmControl'> <div class="bmTopView"> <!-- 名称 --> <view class="netView">{{infoName}} </view> <!-- 详情 +  打车按钮 --> <view class="rowView"> <view class="midView">{{infoDetail}}</view> <view class="locImg" v-show="followIsHide">打车</view> </view> </div> <!-- 我的位置 附近的车图标 --> <div class="bmBotView"> <image class="userIcon" src="../../static/img/biz/person.svg"></image> <view class="userName">定位</view> <image class="userIcon" src="../../static/img/biz/car.svg"></image> <view class="userName">附近的车</view> </div> <view style="height: 2rpx;"></view> </bm-control> <!-- 定位点 --> <bm-marker title="" v-for="(item,index) in netList" :key="100 + index" :data-index="index" @click="netCurClick(item)" :position="{lng: item.longitude, lat: item.latitude}" :icon="{url: 'static/img/biz/person.svg', size: {width: 34, height: 34}}"> </bm-marker> <!-- 附近的车 --> <bm-marker title="" v-for="(item,index) in nearComList" :key="200 + index" @click="companyCurClick(item)" :position="{lng: item.longitude, lat: item.latitude}" :icon="{url: 'static/img/biz/car.svg', size: {width: 34, height: 34}}"> </bm-marker> </baidu-map>

HTML代码部分


<template> <view class="content"> <!-- center: 地图中心点 zoom:地图放大比例 --> <baidu-map v-show="seen" class="bm-view" :center="centerPoint" :zoom="10"> <bm-control class='bmControl'> <div class="bmTopView"> <!-- 名称 --> <view class="netView">{{infoName}} </view> <!-- 详情 +  打车按钮 --> <view class="rowView"> <view class="midView">{{infoDetail}}</view> <view class="locImg" v-show="followIsHide">打车</view> </view> </div> <!-- 我的位置 附近的车图标 --> <div class="bmBotView"> <image class="userIcon" src="../../static/img/biz/person.svg"></image> <view class="userName">定位</view> <image class="userIcon" src="../../static/img/biz/car.svg"></image> <view class="userName">附近的车</view> </div> <view style="height: 2rpx;"></view> </bm-control> <!-- 定位点 --> <bm-marker title="" v-for="(item,index) in netList" :key="100 + index" :data-index="index" @click="netCurClick(item)" :position="{lng: item.longitude, lat: item.latitude}" :icon="{url: 'static/img/biz/person.svg', size: {width: 34, height: 34}}"> </bm-marker> <!-- 附近的车 --> <bm-marker title="" v-for="(item,index) in nearComList" :key="200 + index" @click="companyCurClick(item)" :position="{lng: item.longitude, lat: item.latitude}" :icon="{url: 'static/img/biz/car.svg', size: {width: 34, height: 34}}"> </bm-marker> </baidu-map> </view> </template>

JS代码 (引入组件 填充数据)


<script> import Vue from 'vue' import BaiduMap from 'vue-baidu-map' import { BmlMarkerClusterer } from 'vue-baidu-map' Vue.use(BaiduMap, { // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */ ak: 'dEctYrTTeVr76ANfzG7XwYZGPj' }); export default { components: { }, data() { return { nearComList: [], // 附近商机列表 infoName: '', infoDetail: '', tabbarIsHide: false, followIsHide: false, seen: true, netList: [], netItem: {}, // 中心坐标 {lng: 113.282202, lat:23.13771 } centerPoint: { lng: 113.282202, lat: 23.13771 } }; }, mounted: function(e) { let myThis = this; this.netItem = { 'orgName': '我的地址', 'orgAddr': '详细地址', 'longitude': '113.22', 'latitude': '23.12' }; this.netList.push(this.netItem);           this.infoName = this.netItem.orgName;           this.infoDetail = this.netItem.orgAddr; this.nearComList = [{ 'comName': '车名称', 'comAddr': '车详细地址', 'longitude': '113.262', 'latitude': '23.2128' }, { 'comName': '车名称2', 'comAddr': '车详细地址2', 'longitude': '113.532632', 'latitude': '23.1228' }, { 'comName': '车名称3', 'comAddr': '车详细地址3', 'longitude': '113.42632', 'latitude': '23.1228' }, { 'comName': '车名称4', 'comAddr': '车详细地址4', 'longitude': '113.327632', 'latitude': '23.16228' }, { 'comName': '车名称5', 'comAddr': '车详细地址5', 'longitude': '113.324632', 'latitude': '23.3228' }, { 'comName': '车名称6', 'comAddr': '车详细地址6', 'longitude': '113.1632', 'latitude': '23.2228' } ]; }, methods: { showOrHideTabbar() { this.tabbarIsHide = !this.tabbarIsHide; if (this.tabbarIsHide) { uni.hideTabBar(); } else { uni.showTabBar(); } }, netCurClick(item) { this.followIsHide = false; this.infoName = this.netItem.orgName; this.infoDetail = this.netItem.orgAddr; }, companyCurClick(item) { this.followIsHide = true; this.infoName = item.comName; this.infoDetail = item.comAddr; console.log('客户坐标item = ' + JSON.stringify(item)); }, // 计算两点附近距离 getDistance(lat1, lng1, lat2, lng2) { let EARTH_RADIUS = 6378.137; let radLat1 = this.rad(lat1); let radLat2 = this.rad(lat2); let a = radLat1 - radLat2; let b = this.rad(lng1) - this.rad(lng2); let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); s = s * EARTH_RADIUS; //s = Math.round(s * 10000d) / 10000d; s = Math.round(s * 10000) / 10000; s = s * 1000; //乘以1000是换算成米 return s; }, rad(d) { return d * Math.PI / 180.0; }, }, }; </script>

CSS


<style> .content { display: flex; flex-direction: column; width: 100%; height: 100%; overflow: hidden; } /* 搜索 */ .topView { margin-top: 2px; width: 100%; height: 56px; display: flex; flex-direction: row; } .uni-search { text-align: center; justify-content: center; width: 88%; height: 30px; background-color: #F2F2F2; } .changeIcon { margin-left: -2px; margin-top: 27rpx; width: 12%; height: 24px; } /* .mySwitch { width: 208rpx; margin-left: 3px; height: 56rpx; margin-top: 22rpx; } */ /* 地图 */ .bm-view { width: 100%; height: calc(100vh - 154px); } /* 自定义控件 */ .bmControl { margin-top: calc(100vh - 284px); width: 100vw; margin-left: 0vw; height: 90px; background-color: white; border-radius: 8rpx; } .bmTopView { display: flex; flex-direction: column; margin-left: 26rpx; margin-top: 12rpx; width: 100%; height: 112rpx; } .rowView { display: flex; flex-direction: row; } .netView { font-size: 16px; font-weight: 500; color: #333333; line-height: 26px; font-family: PingFangSC-Semibold, PingFang SC; } .midView { display: flex; flex-direction: row; margin-left: 6rpx; color: #666666; width: 70%; height: 60rpx; line-height: 50rpx; font-size: 13px; } .locImg { margin-left: 2px; margin-top: 0rpx; width: 74px; height: 30px; background-color: #1677FF; border-radius: 32px; color: #FFFFFF; text-align: center; line-height: 30px; } .bmBotView { display: flex; flex-direction: row; margin-left: 6rpx; height: 36px; } .bmBotleftView { width: 70%; display: flex; flex-direction: row; } .userIcon { margin-left: 24rpx; margin-top: 4rpx; width: 20px; height: 20px; } .userName { text-align: center; margin-left: 2px; margin-top: 0rpx; width: auto; height: 24px; line-height: 24px; font-size: 26rpx; color: #999999; border-radius: 3px; } .pullScrollView { display: flex; flex-direction: column; height: auto; width: 100%; background-color: #F2F2F2; } .uni-list { margin-top: 0px; height: 100%; } .uni-list-cell { display: flex; flex-direction: column; margin-bottom: 12px; width: 91%; margin-left: 4.5%; height: auto; background-color: #FFFFFF; border-radius: 12rpx; } .list-text { margin-left: 34rpx; line-height: 44px; width: 100%; font-size: 32rpx; color: #333333; height: 44px; } .list-textDetail { margin-left: 34rpx; line-height: 40rpx; width: 100%; font-size: 28rpx; color: #666666; height: 40rpx; margin-bottom: 40rpx; } .checkbtn { margin-top: -12px; margin-left: 8px; text-align: center; width: 160rpx; font-size: 26rpx; color: #1677FF; background-color: #E7F1FF; height: 34px; line-height: 34px; border-radius: 34rpx; } </style>

前端Vue仿滴滴打车百度地图定位查找附近出租车或门店信息(更新版)的更多相关文章

  1. 百度地图定位SDK 之构想

    百度地图定位 前提 从香港旅游回来,心中油然升起一股热血滂湃,激励自己发现市场需求,向创业奋进,朝着梦想前进. 简介 百度Android定位SDK支持Android1.5以及以上设备,提供: 定位功能 ...

  2. Android 百度地图定位(手动+自动) 安卓开发教程

    近由于项目需要,研究了下百度地图定位,他们提供的实例基本都是用监听器实现自动定位的.我想实现一种效果:当用户进入UI时,不定位,用户需要定位的时候,自己手动点击按钮,再去定位当前位置.  经过2天研究 ...

  3. Android使用百度地图定位并显示手机位置后使用前置摄像头“偷拍”

    今天老板让我验证一下技术可行性,记录下来. 需求 :定位手机的位置并在百度地图上显示,得到位置后使用前置摄像头进行抓拍 拿到这个需求后,对于摄像头的使用不太熟悉,于是我先做了定位手机并在百度地图上显示 ...

  4. Vue中使用百度地图——设置地图标注

    知识点:创建Map实例,为指定的位置设置标注 参考博客:https://www.cnblogs.com/liuswi/p/3994757.html 1.效果图:初始化地图,设置指定经纬度为地图中心点坐 ...

  5. IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息

    IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息 /**当获取到定位的坐标后,回调函数*/ - (void)didUpdateBMKUserLocation:(BMKUserLocati ...

  6. Vue+Antd搭配百度地图实现搜索定位等功能

    前言 最近,在做vue项目的时候有做到选择地址功能,而原项目中又引入了百度地图,所以我就打算通过使用百度地图来实现地址搜索功能啦. 本次教程可能过于啰嗦,所以这里先放上预览地址供大家预览--点我预览, ...

  7. vue 中结合百度地图获取当前城市

    首先需要去百度地图开发者平台申请 ak http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5 在index.html 中引入script ...

  8. 同步和异步概念(由DZW前端框架引发的百度地图api无法加载问题总结)

    首先概念: 在计算机领域,同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去:异步是指进程不需要一直等下去,而是继续 ...

  9. Vue中使用百度地图——根据输入框输入的内容,获取详细地址

    知识点:在Vue.js项目中调用百度地图API,实现input框,输入地址,在百度地图上定位到准确地址,获得到经纬度 参考博客:  百度地图的引用,初步了解参考博客:http://blog.csdn. ...

  10. 我的Android进阶之旅------>Android百度地图定位SDK功能学习

    因为项目需求,需要使用百度地图的定位功能,因此去百度地图开发平台下载了百度地图的Android定位SDK最新版本的开发包和示例代码学习. Android 定位SDK地址:http://develope ...

随机推荐

  1. Service Mesh之Istio部署bookinfo

    前文我们了解了service mesh.分布式服务治理和istio部署相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/17281541.html:今天我 ...

  2. 使用 screw(螺丝钉) 快速生成数据库文档

    一.框架介绍 回想起那个去年的7月份,第一份实习,组长让我写一份金蝶云的SQL文档,当时一看2000多张表,当时就猛吸一根烟,然后去gitee看看有没有好的框架快速生成 SQL 文档 ,由此找到了 s ...

  3. DBA面试小结

    问题描述:一个DBA在面试过程中,面试官最喜欢提问哪些问题,经过这些天的面试经历,总结了一些面试经验. 普通的外包可能只有一轮技术面试再加一轮人资面试,外包项目一般急需用人,所以面试流程基本简化,合适 ...

  4. yolov5训练自己的数据集

    1.安装cuda 可以先看看自己的 显卡信息,支持哪个cuda版本 cuda下载地址:https://developer.nvidia.com/cuda-toolkit-archive 我的RTX30 ...

  5. 极简cfs公平调度算法

    1. 说明 1> linux内核关于task调度这块是比较复杂的,流程也比较长,要从源码一一讲清楚很容易看晕 2> 本篇文章主要是讲清楚cfs公平调度算法如何将task在时钟中断驱动下切换 ...

  6. 基于Switching的 恒虚警率检测算法

    转发和使用请注明来源,以下为本人精心整理,还请尊重本人劳动成果与产权!由于本人现有知识和能力有限,如存在错误之处请指正!下面为正文内容: 1.S-CFAR检测算法(Switching,开关CFAR) ...

  7. “露天煤矿现场调研和交流案例分享”在CSDN发表,两次审核未通过,判定:全篇涉及广告

    我在博客园发布了:露天煤矿现场调研和交流案例分享.后台分享到了CSDN,结果判定为:全篇涉及广告.我要是真能写出来全篇涉及广告的文章,也算我能力比较强,就算是让ChatGPT可能也写不出来吧. 这种坐 ...

  8. 【原型设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

    简介 原型模式(Prototype Pattern)是一种创建型设计模式,使你能够复制已有对象,而无需使代码依赖它们所属的类,同时又能保证性能. 这种模式是实现了一个原型接口,该接口用于创建当前对象的 ...

  9. Centos 安装 python3.x 为默认

    CentOS 7 中默认安装了 Python,但是版本是2.x的,由于2020年python2.x将停止更新,因此需要将版本升级至3.x.但由于python2.x是系统集成的,很多命令都是要基于pyt ...

  10. windows下MinGW编译ffmpeg

    windows下MinGW编译ffmpeg 1.官网下载MinGW并安装       1)下载 ,下载网址: https://sourceforge.net/projects/mingw/files/ ...