详解vue实现坐标拾取器功能示例


Posted in Vue.js onNovember 18, 2020

需求

1、搜索具体地址,自动填写经纬度,并在地图上标记

详解vue实现坐标拾取器功能示例

2、点击地图上一点,可重新填写经纬度并且标记

代码

在dom新建div渲染地图

<el-form-item label="店铺地址" prop="address">
 <el-input v-model="fristForm.address"></el-input>
 <el-input
 class="long-lat"
 v-model="fristForm.longitude"
 placeholder="经度"
 ></el-input>
 <el-input
 class="long-lat"
 v-model="fristForm.latitude"
 placeholder="纬度"
 ></el-input>
 <el-button size="mini" type="primary" @click="searchKeyword"
 >搜索</el-button
 >
</el-form-item>
<span class="changeAddress">点击地图更换分店定位地址</span>
<!-- 渲染地图的div容器 -->
<div id="container" class="mapbox"></div>

js定义地图变量并设置需求

var searchService,geocoder,map,markersArray = [];
<script>
export default {
 mounted() {
  this.init();
 },
 methods:{
  init() {
   var that = this;
   var center = new qq.maps.LatLng(39.916527, 116.397128);
   var map = new qq.maps.Map(document.getElementById("container"), {
   center: center,
   zoom: 13
   });
   var latlngBounds = new qq.maps.LatLngBounds();
   qq.maps.event.addListener(map, "click", function(event) {
   console.log(event);
   that.fristForm.longitude = event.latLng.getLng(); // 经度
   that.fristForm.latitude = event.latLng.getLat(); // 纬度

   if (markersArray) {
    for (let i in markersArray) {
    markersArray[i].setMap(null);
    }
   }
   var marker = new qq.maps.Marker({
    map: map,
    position: event.latLng
   });
   markersArray.push(marker);
   });

   geocoder = new qq.maps.Geocoder({
   complete: function(result) {
    console.log(result);
    that.fristForm.longitude = result.detail.location.lng;
    that.fristForm.latitude = result.detail.location.lat;
    map.setCenter(result.detail.location);
    var marker = new qq.maps.Marker({
    map: map,
    position: result.detail.location
    });
    markersArray.push(marker);
   }
   });
  },
 },
 // 搜索地址
 searchKeyword() {
  var keyword = this.fristForm.address;
  this.clearOverlays(markersArray);
  //根据输入的城市设置搜索范围
  // searchService.setLocation("北京");
  //根据输入的关键字在搜索范围内检索
  if (keyword) {
  // searchService.search(keyword);
  geocoder.getLocation(keyword);
  } else {
  alert("请输入地址");
  }
 },
}
</script>

文档参考

以上代码使用的是jsapi功能,目前对应功能已升级JavaScript API GL,地址解析功能可直接调取接口使用,欢迎大家体验!

地址解析(地址转坐标)
JavaScript API GL参考手册

到此这篇关于详解vue实现坐标拾取器功能示例的文章就介绍到这了,更多相关vue 坐标拾取器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木! 

Vue.js 相关文章推荐
详解Vue3 Teleport 的实践及原理
Dec 02 Vue.js
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
vue-cropper组件实现图片切割上传
May 27 Vue.js
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
vue+echarts实现多条折线图
Mar 21 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
分享一个vue实现的记事本功能案例
Apr 11 Vue.js
vue使用element-ui按需引入
May 20 Vue.js
vue实现在data里引入相对路径
Jun 05 Vue.js
el-table-column 内容不自动换行的解决方法
Aug 14 Vue.js
Vue如何循环提取对象数组中的值
Nov 18 #Vue.js
vue在图片上传的时候压缩图片
Nov 18 #Vue.js
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 #Vue.js
springboot+vue实现文件上传下载
Nov 17 #Vue.js
vue 表单输入框不支持focus及blur事件的解决方案
Nov 17 #Vue.js
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 #Vue.js
Vue项目利用axios请求接口下载excel
Nov 17 #Vue.js
You might like
php下将XML转换为数组
2010/01/01 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
营销主管自我评价怎么写
2013/09/19 职场文书
工程造价专业大专生求职信
2013/10/06 职场文书
个人简历的自荐信
2013/10/23 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
年会主持词结束语
2014/03/27 职场文书
公司新年寄语
2014/04/04 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书