高德地图 - 拖拽选址+搜索选址
实现效果 - 搜索和拖拽选址
思路
拖拽选址,用的是高德的UI组件库PositionPicker
添加圆标记用的是添加覆盖物-圆
搜索选址用的是搜索服务AMap.Autocomplete
(根据输入关键字提示匹配信息)
重点
实现拖拽后会返回经纬度,主要是改变圆的位置,.circle.setCenter([location.lng,location.lat])
,拖拽的时候,圆跟着位置点中心在动;
当搜索选址的时候,也会返回一个经纬度等位置信息,这时改变圆,地图不会动,地图的点标记也不会动,这时候,用一个方法搞定map.setFitView()
代码
<template><div class="addFence"><my-head title="新增围栏" iconL="back" :hslotr='hslotr' @on-click-hleft="triggerHLeft" @on-click-hright='triggerHRight'></my-head><div id="search"><div class="search_box"><div class="search_btn"><img src="/images/person/search.png" alt=""></div><input id="search_adress" maxlength="30" type="text" v-model="searchText" placeholder="请输入搜索地址"><div class="close" @click="clearSearch"><img src="/images/person/clear.png" alt=""></div></div></div><div id="map-container"></div><div class="fence_msg"><mt-field label="中心位置" type='textarea' multiline='true' v-model="centerLocation"></mt-field><mt-field label="围栏名称" placeholder="请输入围栏名称" v-model="fenceName"></mt-field><mt-field label="围栏半径" v-model="radius"><!-- <mt-range class="rangeBox" v-model="rangeValue" :disabled="true" :barHeight="1"><div slot="start"></div><div slot="end"></div></mt-range> --></mt-field><mt-field label="围栏报警" readonly placeholder="进围栏报警" v-model="fenceStyle" @click.native="choiceFenceStyle"><img src="/images/arrowrightbb.png"></mt-field><mt-actionsheet:actions= "data"v-model="sheetVisible"></mt-actionsheet></div></div>
</template>
<script>
export default {data(){return{hslotr: '保存',rangeValue: '',centerLocation: '中心位置',fenceName: '围栏1',fenceStyle: '进围栏报警',data:[],sheetVisible: false,radius: 500,circle: null,map: {},searchText: ''}},mounted(){this.initMap();},methods:{triggerHLeft(){this.$router.go(-1);},triggerHRight(){console.log('点击了保存')},clearSearch(){this.searchText = '';},/* 做围栏圈圈 */addCircle(lat,lng,radius){lat = lat + "";lng = lng + "";this.circle = new AMap.Circle({center: new AMap.LngLat(lat,lng), // 圆心位置radius: radius, //半径strokeColor: "#76D5C2", //线颜色strokeOpacity: 1, //线透明度strokeWeight: 1, //线粗细度fillColor: "#76D5C2", //填充颜色fillOpacity: 0.35 //填充透明度});this.map.add(this.circle);this.map.setFitView();},initMap(){const _this = this;_this.map = new AMap.Map('map-container', {zoom: 16,scrollWheel: false})/* 做地图拖拽选址 */AMapUI.loadUI(['misc/PositionPicker'], function(PositionPicker) {console.log('aaajdjdjdjdjdj')var positionPicker = new PositionPicker({mode: 'dragMap',map: _this.map});positionPicker.on('success', function(positionResult) {let position = positionResult.position;if(_this.circle){console.log(position.lng,position.lat)_this.circle.setCenter([position.lng,position.lat]);}else{_this.addCircle(position.lng, position.lat,_this.radius);}_this.centerLocation = positionResult.address;});positionPicker.on('fail', function(positionResult) {console.log('fail');});var onModeChange = function(e) {positionPicker.setMode(e.target.value)}positionPicker.start();});/* 搜索地址 */_this.map.plugin(["AMap.Autocomplete"], function() {var auto = new AMap.Autocomplete({input: "search_adress"});AMap.event.addListener(auto, "select", function(result){console.log(result);let location = result.poi.location;if(_this.circle){_this.circle.setCenter([location.lng,location.lat]);}else{_this.addCircle(location.lng, location.lat,_this.radius);}_this.map.setFitView();});});},choiceFenceStyle(){const _this = this;this.data = [{name: '进围栏报警', method: function () {_this.fenceStyle = '进围栏报警';_this.sheetVisible = false;}},{name: '出围栏报警', method: function () {console.log('出围栏报警')_this.fenceStyle = '出围栏报警';_this.sheetVisible = false;}},{name: '进/出围栏报警', method: function () {_this.fenceStyle = '进/出围栏报警';_this.sheetVisible = false;}},{name: '暂不报警', method: function () {_this.fenceStyle = '暂不报警';_this.sheetVisible = false;}}]this.sheetVisible = true;}}
}
</script>
高德地图 - 拖拽选址+搜索选址相关推荐
- 高德地图四:关键字搜索
高德地图四:关键字搜索 关键字检索介绍 根据关键字检索适用于在某个城市搜索某个名称相关的POI,例如:查找北京市的"肯德基". 注意:关键字未设置城市信息(默认为全国搜索)时,如果 ...
- @antv/l7绘制地图,添加图例,修改地图上颜色,是否允许地图拖拽,是否滚动缩放等
html <div class="charts-box"><div style="min-height: 300px; justify-content: ...
- react Amap引入高德地图,并实现搜索定位。
react 引入高德地图,并实现搜索定位 一.react 引入Amap: Amap官方地址:https://elemefe.github.io/react-amap/articles/start 按照 ...
- android地图拖动事件,地图拖拽相关事件
事件系统 html, body, #container { width: 100%; height: 100%; } 请用鼠标拖拽地图试试 地图拖拽相关事件 绑定事件 解绑事件 //初始化地图对象,加 ...
- Android开发丶基于高德地图实现定位、搜索定位、绘制圆圈自定义图标及改变圆圈半径等功能
前一段时间接了个需求,进入一个地图界面,可以获取当前位置信息,通过输入位置信息获取位置,绘制圆圈并可以实时改变圆圈半径等功能,地图SDK我们使用的是高德地图,仔细阅读了开发文档,发现这些需求都可以通过 ...
- Flutter 调用高德地图APP实现位置搜索、路线规划、逆地理编码
1 开发准备 pubspec.yaml 配置文件中添加插件 dependencies:flutter:sdk: flutterurl_launcher: ^6.1.2 iOS 配置 info.plis ...
- 高德地图——定位,POI搜索
1.创建应用获取KEY 创建应用 填写应用相关的信息 获取SHA1值 获取KEY值 2.Android studio 项目配置,集成SDK 配置Gradle,通过build.gradle进行sdk的配 ...
- 高德地图api之兴趣点搜索
除了定位basic map,我们现在探讨一下使用api中提供的搜索兴趣点服务和路线查找服务: 高德地图的api提供了对千万级别的兴趣点的搜索,PoiSearch有几种方式:常用的有关键字搜索,类型搜索 ...
- 高德地图实现画线搜索
今天分享一下,使用高德地图api实现上图可自由画线的效果. 查看高德官方文档会发现,并没有可自主画图,文档提供的矢量图功能有: AMap.Polyline 构造折线 AMap.BezierCurve ...
最新文章
- Windows 10 Anaconda Python 3.7 安装 MXNet GPU版
- 2021年工业机器人的六大趋势
- 图解反向代理和正向代理。
- 返回局部变量或临时变量的地址_C++的函数不可以返回局部变量的指针
- 机器学习(一)——线性回归、分类与逻辑回归
- php 五角星,php使用GD库画五角星_PHP教程
- [毕业生的商业软件开发之路]系列文章目录规划
- 线性表的链式存储实现
- 创建 macvlan 网络 - 每天5分钟玩转 Docker 容器技术(55)
- 2018年统计用区划代码和城乡划分代码
- web网页设计期末课程大作业 简单的学生网页作业源码 基于HTML仿淘宝电商网站项目的设计与实现 企业网站制作
- 【python 走进NLP】hanNLP 简繁拼音转换
- 率土之滨服务器维修,率土之滨征服赛季合服与转服功能详解
- erlang使用httpc:request报错nxdomain
- 还没量产的FF上市!贾跃亭:必须回国!这次,谁为他梦想“窒息”
- 游戏时间 (10 分)
- 截至2015年工作中接触集成过的硬件设备整理记录
- 《GhostXP_SP2电脑公司特别版_8.0》
- 更换ip软件安卓_掘金网告诉你稳定IP的神操作!
- [arduino]ESP8266配置连接IoT阿里云平台(arduino D1 mini)
热门文章
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1...
- 2021-10-14每日一练
- 育儿-《10-14岁青少年,你在想什么?》书中的精髓:父母如何理解青少年潜意识中的冲突和需求,陪伴他们共度青春期?
- 前端媒体查询知识梳理
- 光伏行业将由补贴转向技术、商业驱动
- 新锐潮流男装品牌CHINISM成功上线巨益全渠道电商中台
- 使用Python获取股票数据(csv文件)
- @Validated嵌套校验
- easyExcel导出多个sheet的excel
- windows安装tomcat