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 相关文章推荐
jQuery 动态酷效果实现总结
Dec 27 Javascript
基于javascript的COOkie的操作实现只能点一次
Dec 26 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
JS遍历数组及打印数组实例分析
Jan 21 Javascript
js简单判断移动端系统的方法
Feb 25 Javascript
JavaScript入门系列之知识点总结
Mar 24 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 Javascript
图片懒加载插件实例分享(含解析)
Jan 09 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 jQuery
JavaScript实现职责链模式概述
Jan 25 Javascript
nuxt配置通过指定IP和端口访问的实现
Jan 08 Javascript
vue实力踩坑之push当前页无效
Apr 10 Vue.js
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
使用 MySQL Date/Time 类型
2008/03/26 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
常用js脚本
2006/12/03 Javascript
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
JavaScript中filter的用法实例分析
2019/02/27 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
Django 多环境配置详解
2019/05/14 Python
Django 用户认证组件使用详解
2019/07/23 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
python 下划线的不同用法
2020/10/24 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
校运会广播稿100字
2014/01/27 职场文书
老同学聚会感言
2014/02/23 职场文书
艺人经纪人岗位职责
2014/04/15 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书