vue用BMap百度地图实现即时搜索功能


Posted in Javascript onSeptember 26, 2019

 本文实例为大家分享了vue用BMap百度地图实现即时搜索功能的具体代码,供大家参考,具体内容如下

vue用BMap百度地图实现即时搜索功能

vue用BMap百度地图实现即时搜索功能

功能如下:

搜索框搜索---自动下拉---点击数据---数据显示在搜索框里---点击新增--数据显示在下方--点击删除--删除当前

代码:

首先去百度开发者申请一个key

然后将key引入到项目的 index.html:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的key"></script>

下面是组件代码:

<template>
 <div id="app">
 <el-form label-width="200px">
  <el-form-item label="包含小区" required class="housing_input">
  <el-input id="suggestId" v-model="city" placeholder="请输入小区名称" name="address_detail" />
  <div id="allmap"/>
  <el-button @click="add_housing">新增</el-button>
  <div v-for="(item,index) in add_housing_list" :key="index" class="housingList">
   <span>{{item}}</span>
   <el-button class="delete_button" @click="delete_housing(index)">删除</el-button>
  </div>
  </el-form-item>
 </el-form>
 </div>
</template>
 
<script>
export default {
 name: 'demo',
 data(){
 return{
 city: '',
 address_detail: null, //详细地址
 add_housing_list: ["阿里巴巴"],
 }
 },
 mounted() {
 this.getcity()
 },
 methods:{
 getcity(){
 this.$nextTick(function() {
 var th = this
 // 创建Map实例
 var map = new BMap.Map('allmap')
 // 初始化地图,设置中心点坐标,
 var point = new BMap.Point(120.211877, 30.255194) // 创建点坐标,汉得公司的经纬度坐标
 map.centerAndZoom(point, 15)
 map.enableScrollWheelZoom()
 
 var ac = new BMap.Autocomplete( // 建立一个自动完成的对象
 {
  'input': 'suggestId',
  'location': map
 })
 var myValue
 ac.addEventListener('onconfirm', function(e) { // 鼠标点击下拉列表后的事件
 var _value = e.item.value //获取点击的条目
 myValue = _value.province + _value.city + _value.district + _value.street + _value.business //地址拼接赋给一个变量
 th.city = myValue //将地址赋给data中的city
 // console.log(th.city)
 setPlace()
 })
 // console.log(ac.pc.input)
 function setPlace() {
 map.clearOverlays() // 清除地图上所有覆盖物
 function myFun() {
  th.userlocation = local.getResults().getPoi(0).point // 获取第一个智能搜索的结果
  map.centerAndZoom(th.userlocation, 18)
  map.addOverlay(new BMap.Marker(th.userlocation)) // 添加标注
 }
 
 var local = new BMap.LocalSearch(map, { // 智能搜索
  onSearchComplete: myFun
 })
 local.search(myValue)
 
 // 测试输出坐标(指的是输入框最后确定地点的经纬度)
 map.addEventListener('click', function(e) {
  // 经度
  console.log(th.userlocation.lng)
  // 纬度
  console.log(th.userlocation.lat)
 })
 }
 },)
 },
 // 新增小区 点击的地址增加进list
 add_housing() {
 this.add_housing_list.push(this.city)
 },
 // 删除小区
 delete_housing(index) {
 // console.log(index)
 this.add_housing_list.splice(index, 1)
 },
}
}
</script>
 
<style scoped>
.housingList{
 margin-top:20px;
}
.delete_button{
 color: #409EFF;
 text-decoration: underline;
 border:none;
 background:#fff;
 cursor: pointer;
 margin-left:20px;
}
 
.el-input{
 width: 800px;
 }
 .housing_input .el-input{
 width: 730px;
 }
 
 #allmap{
 width: 400px;
 height: 400px;
 font-family: "微软雅黑";
 display: none;
}
 
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript+dom树型菜单类,希望朋友们一起进步
May 03 Javascript
javascript获取URL参数与参数值的示例代码
Dec 20 Javascript
jQuery实现自动滚动到页面顶端的方法
May 22 Javascript
JS获取鼠标选中的文字
Aug 10 Javascript
webpack3+React 的配置全解
Aug 21 Javascript
基于JSON数据格式详解
Aug 31 Javascript
vue2单元测试环境搭建
May 24 Javascript
angular2实现统一的http请求头方法
Aug 13 Javascript
angular中子控制器向父控制器传值的实例
Oct 08 Javascript
vue拖拽排序插件vuedraggable使用方法详解
Aug 21 Javascript
使用rollup打包JS的方法步骤
Dec 05 Javascript
详解js location.href和window.open的几种用法和区别
Dec 02 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 #Javascript
微信小程序点击列表跳转到对应详情页过程解析
Sep 26 #Javascript
vue+element tabs选项卡分页效果
Jun 29 #Javascript
layui实现根据table数据判断按钮显示情况的方法
Sep 26 #Javascript
vue+element表格导出为Excel文件
Sep 26 #Javascript
利用layer实现表单完美验证的方法
Sep 26 #Javascript
vue点击当前路由高亮小案例
Sep 26 #Javascript
You might like
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
php实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
对象的类型:本地对象(1)
2006/12/29 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
PyTorch预训练的实现
2019/09/18 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
财务管理职业生涯规划范文
2013/12/27 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
简历中自我评价范文
2015/03/11 职场文书
法制教育观后感
2015/06/17 职场文书
公司年会主持词范文!
2019/05/07 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
SQL中的三种去重方法小结
2021/11/01 SQL Server