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写的点击上下滚动的小例子
Aug 27 Javascript
Prototype源码浅析 String部分(四)之补充
Jan 16 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 Javascript
jquery将一个表单序列化为一个对象的方法
Dec 02 Javascript
Javascript实现前端简单的路由实例
Sep 11 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
纯js实现html转pdf的简单实例(推荐)
Feb 16 Javascript
利用Vue v-model实现一个自定义的表单组件
Apr 27 Javascript
node错误处理与日志记录的实现
Dec 24 Javascript
微信小程序自定义可滑动日历界面
Dec 28 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
Mar 26 Javascript
element中el-container容器与div布局区分详解
May 13 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调用MySQL的存储过程的实现代码
2008/08/12 PHP
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
phplock(php进程锁) v1.0 beta1
2009/11/24 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
php并发加锁示例
2016/10/17 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
使用隐藏的new来创建对象
2011/03/29 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
python自动化测试之连接几组测试包实例
2014/09/28 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
django创建超级用户过程解析
2019/09/18 Python
python3多线程知识点总结
2019/09/26 Python
python扫描线填充算法详解
2020/02/19 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
个人自我剖析材料
2014/02/07 职场文书
2014年健康教育工作总结
2014/11/20 职场文书