详解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 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 Vue.js
Vue项目中使用mock.js的完整步骤
Jan 12 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
HTML+VUE分页实现炫酷物联网大屏功能
May 27 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
vue3种table表格选项个数的控制方法
Apr 14 Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 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输出缓存(output_buffering)的深入理解
2013/06/13 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
Javascript将string类型转换int类型
2010/12/09 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
python中去空格函数的用法
2014/08/21 Python
python实现ipsec开权限实例
2014/11/11 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
python PyTorch预训练示例
2018/02/11 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
高级工程师岗位职责
2013/12/15 职场文书
元宵节主持词
2014/03/25 职场文书
品德评语大全
2014/05/05 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
电影复兴之路观后感
2015/06/02 职场文书
Python测试框架pytest高阶用法全面详解
2022/06/01 Python