详解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 相关文章推荐
详解Vue中的自定义指令
Dec 07 Vue.js
vue的hash值原理也是table切换实例代码
Dec 14 Vue.js
vue中封装axios并实现api接口的统一管理
Dec 25 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
Vue项目打包部署到apache服务器的方法步骤
Feb 01 Vue.js
如何封装Vue Element的table表格组件
Feb 06 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
vue实现可拖拽的dialog弹框
May 13 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 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
PHP5 安装方法
2006/10/09 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
2016/03/15 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
Python基础篇之初识Python必看攻略
2016/06/23 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
Django如何将URL映射到视图
2019/07/29 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书