详解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-calendar-component 封装多日期选择组件的实例代码
Dec 04 Vue.js
vue 通过base64实现图片下载功能
Dec 19 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
详解Vue router路由
Nov 20 Vue.js
Vue实现跑马灯样式文字横向滚动
Nov 23 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 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版(3)
2006/10/09 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
ejs v9 javascript模板系统
2012/03/21 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
javascript使用location.search的示例
2013/11/05 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
python 8种必备的gui库
2020/08/27 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
党员发展大会主持词
2015/07/03 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS