vue集成高德地图API实现坐标拾取功能

安装与配置:

组件 | vue-amapDescriptionicon-default.png?t=O83Ahttps://elemefe.github.io/vue-amap/#/zh-cn/introduction/install简介 | @vuemap/vue-amap简介icon-default.png?t=O83Ahttps://vue-amap.guyixi.cn/zh-cn/introduction/introduction.html        ​​​​我的应用 | 高德控制台高德开放平台官网控制台提供了高德开发者Key管理,Key可视化分析等功能。icon-default.png?t=O83Ahttps://console.amap.com/dev/key/app        

页面设计与引用

<template>
    <div class="amap-wrapper">

        <el-amap class="amap-box"  :vid="'amap-vue'"  :bubble="true" :center="center" :zoom="zoom" :events="events">
            <!-- 搜索框 -->
            <el-amap-search-box
                class="searchBox"
                :search-option="searchOption"
                :on-search-result="onSearchResult"
            />
            <!-- 标注点 -->
            <el-amap-marker :position="center" ></el-amap-marker>
            <!-- tootip -->
            <el-amap-text
                :position="mark"
                :text="mark.toString()"
                :offset="[100,-20]"
            >
            </el-amap-text>
            <!-- 信息窗体-->
            <el-amap-info-window
                :position="center"
                :offset="[0,-30]"
            >
                <div style="margin: 15px 5px 0">{{ centerAddress.formattedAddress }}</div>
            </el-amap-info-window>
        </el-amap>
    </div>
</template>
<script>
    export default {
        name: 'siteinfo',
        data() {
            return {
                zoom: 10,//初始缩放比例
                center: [104.077448,30.624161],//初始中心点
                mark: [104.077448,30.624161],//初始标记点
                centerAddress: {//中心点位置信息
                    city: "全国",
                    district: "全国",
                    province: "全国",
                    township: "",
                    formattedAddress: "全国",
                },
                markAddress: {//标记点位置信息
                    city: "全国",
                    district: "全国",
                    province: "全国",
                    township: "",
                    formattedAddress: "全国",
                },
                searchOption:{
                    city:"全国",
                    citylimit:true,
                },
                events: {
                    // init: (e) => {
                    //     // this.center=[101.722732,26.580607]
                    //     this.getAddress(this.center);
                    // },
                    click: (e) => {
                        this.center = [e.lnglat.lng, e.lnglat.lat]
                        this.getAddress(this.center);

                    },
                    mousemove: (e) => {
                        this.mark = [e.lnglat.lng, e.lnglat.lat]
                    }

                }
            }
        },
        methods: {
            
            // 使用AMap服务获取地址
            getAddress(latLong){
                var geocoder;
                AMap.plugin("AMap.Geocoder",function(){

                    geocoder = new AMap.Geocoder({
                        radius: 1000,
                        extensions: 'all'
                    });

                })
                geocoder.getAddress(latLong, (status, result) => {

                    console.log("address", result)
                    if (status === 'complete' && result.info === 'OK') {
                        // 获取当前点名称
                        const address = result.regeocode.formattedAddress;
                        this.centerAddress = {
                            city: result.regeocode.addressComponent.city,
                            district: result.regeocode.addressComponent.district,
                            province: result.regeocode.addressComponent.province,
                            township: result.regeocode.addressComponent.township,
                            formattedAddress: address,
                        }
                        // console.log("address", result)
                    }
                });
            },

            // 地图搜索回调
            onSearchResult(pois) {
               

                if( pois.length !== 0){
                    this.center=[pois[0].lng, pois[0].lat];
                    this.getAddress(this.center);
                }
                console.log("地图回调", pois);

            },
            //修改时将当前坐标赋值
            rowEdit(row, index){
                console.log("row",row)
                this.center=row.latLong.split(',').map(Number)
                this.getAddress(this.center);

                this.$refs.crud.rowEdit(row,index)

            },

            //新增时给个初始位置
            rowAdd(){
                this.center=[104.077448,30.624161];
                this.getAddress(this.center);
            },

            // 更新
            handleUpdate: function (row, index, done,loading) {

                row.province = this.centerAddress.province
                row.city = this.centerAddress.city
                row.disrict = this.centerAddress.district
                row.addressDetail = this.centerAddress.formattedAddress
                row.latLong = this.center.toString()
                console.log(row)

                if( row.latLong ){
                    putObj(row).then(data => {
                        this.$message.success('修改成功')
                        done()
                        this.searchForm = {}
                        this.getList(this.page)
                    }).catch(() => {
                        loading();
                    });
                }else {
                    this.$message.error('请选择筛查地点')
                }

            },
            // 保存
            handleSave: function (row, done,loading) {
                row.province = this.centerAddress.province
                row.city = this.centerAddress.city
                row.disrict = this.centerAddress.district
                row.addressDetail = this.centerAddress.formattedAddress
                row.latLong = this.center.toString()

                console.log(row)


                addObj(row).then(data => {
                    this.$message.success('添加成功')
                    done()
                    this.searchForm = {}

                    this.getList(this.page)
                }).catch(() => {
                    loading();
                });
            },
           
        }
    }
</script>

<style scoped>
.amap-wrapper {
    width: 100%;
    height: 75Vh;
    position: relative;
    .searchBox{
        position: absolute;
        top: 20px;
        left: 20px;
    }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/955539.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#异步多线程——浅谈async/await底层原理

async/await是块语法糖&#xff0c;编译器帮助我们做了很多工作&#xff0c;下面我们就简单剖析一下async/await的底层原理。 反编译工具ILSpy安装 我用的是ILSpy反编译生成的dll程序集。还没有ILSpy工具的小伙伴可以直接在VS中安装&#xff1b;点击Extensions>Manage Ext…

ThinkPHP 8的一对多关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

npm的包管理

从哪里下载包 国外有一家 IT 公司&#xff0c;叫做 npm,Inc.这家公司旗下有一个非常著名的网站: https://www.npmjs.com/&#xff0c;它是全球最大的包共享平台&#xff0c;你可以从这个网站上搜索到任何你需要的包&#xff0c;只要你有足够的耐心!到目前位置&#xff0c;全球约…

【python】OpenCV—Extract Horizontal and Vertical Lines—Morphology

文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、参考 更多有趣的代码示例&#xff0c;可参考【Programming】 1、功能描述 基于 opencv-python 库&#xff0c;利用形态学的腐蚀和膨胀&#xff0c;提取图片中的水平或者竖直线条 2、代码实现 导入基本的库函数 im…

《Keras 3 在 TPU 上的肺炎分类》

Keras 3 在 TPU 上的肺炎分类 作者&#xff1a;Amy MiHyun Jang创建日期&#xff1a;2020/07/28最后修改时间&#xff1a;2024/02/12描述&#xff1a;TPU 上的医学图像分类。 &#xff08;i&#xff09; 此示例使用 Keras 3 在 Colab 中查看 GitHub 源 简介 设置 本教程将介…

CSS认识与实践

目录 CSS 是什么 基本语法规范 引入方式 内部样式表 行内样式表 外部样式 空格规范 选择器 选择器的功能 选择器的种类 基础选择器 标签选择器 类选择器 id 选择器 通配符选择器 基础选择器小结 复合选择器 后代选择器 子选择器 并集选择器 伪类选择器 复合…

Windows环境:使用命令行脚本批量发送http请求

因为服务器Windows版本问题&#xff0c;无法使用curl&#xff0c;所以只能使用wget。 C:\Windows\System32\wget.exe 需求背景&#xff1a; 传入客户端参数&#xff0c;请求服务端。 将请求参数保存到文本文件中&#xff0c;命令行读取文本文件&#xff0c;然后分割字符串&am…

Logback日志技术

Logback日志技术 日志 日志&#xff08;Logging&#xff09;是软件开发和运维中用于记录系统或应用程序运行期间发生的运行信息、状态变化、错误信息等的一种机制&#xff0c;这种记录的方式就好像我们日常生活中写日记一样。它提供了一种持久化的方式&#xff0c;使得开发者…

6. 快速掌握抽象类及接口

目录 1. 抽象类1.1 抽象类语法1.2 抽象类特性1.3 抽象类的作用 2. 接口2.1 接口语法2.2 接口的特性 3. 接口案例4. 常用接口4.1 Comparable接口---compareTo()方法4.2 clonable接口---clone方法4.2 深拷贝和浅拷贝 5. Object类5.1 equals()方法5.2 toString()方法5.3 hashCode(…

womb子宫一词解趣

英语单词 womb&#xff0c;是“子宫”的意思&#xff0c;这个单词非常有趣&#xff0c;下面我们来说说它有趣在什么地方。 首先&#xff0c;womb 这个单词&#xff0c;大体可以分成两个部分&#xff0c;即wom-和b-&#xff0c;其中wom-可对应子宫的子&#xff0c;b-可对应子宫…

Spring Cloud概述

&#xff08;一&#xff09;定义 Spring Cloud是一个基于Spring Boot实现的云应用开发工具&#xff0c;它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一套完整的解决方案…

年后找工作需要注意的事项

大家好&#xff01;我是 [数擎 AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;前端开发 | A…

windows远程桌面连接限定ip

1&#xff0c;Windows防火墙->高级设置->远程桌面 - 用户模式(TCP-In)->作用域->远程IP地址 2&#xff0c;启用规则

电脑换固态硬盘

参考&#xff1a; https://baijiahao.baidu.com/s?id1724377623311611247 一、根据尺寸和缺口可以分为以下几种&#xff1a; 1、M.2 NVME协议的固态 大部分笔记本是22x42MM和22x80MM nvme固态。 在京东直接搜&#xff1a; M.2 2242 M.2 2280 2、msata接口固态 3、NGFF M.…

3.无重复字符的最长字串--力扣

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “…

西门子【Library of Basic Controls (LBC)基本控制库”(LBC) 提供基本控制功能】

AF架构中使用的库 文章目录 Table of contents Legal information ..............................................................................................................................2 1 Introduction ................................................…

Golang Gin系列-2:搭建Gin 框架环境

开始网络开发之旅通常是从选择合适的工具开始的。在这个全面的指南中&#xff0c;我们将引导你完成安装Go编程语言和Gin框架的过程&#xff0c;Gin框架是Go的轻量级和灵活的web框架。从设置Go工作空间到将Gin整合到项目中&#xff0c;本指南是高效而强大的web开发路线图。 安装…

Visual Studio Community 2022(VS2022)安装方法

废话不多说直接上图&#xff1a; 直接上步骤&#xff1a; 1&#xff0c;首先可以下载安装一个Visual Studio安装器&#xff0c;叫做Visual Studio installer。这个安装文件很小&#xff0c;很快就安装完成了。 2&#xff0c;打开Visual Studio installer 小软件 3&#xff0c…

《offer 来了:Java 面试核心知识点精讲 -- 原理篇》

在 Java 面试的战场上&#xff0c;只知皮毛可不行&#xff0c;面试官们越来越看重对原理的理解。今天就给大家分享一本能让你在面试中脱颖而出的 “武林秘籍”——《offer 来了&#xff1a;Java 面试核心知识点精讲 -- 原理篇》。 本书详细介绍了Java架构师在BAT和移动互联网公…

1,Linux环境变量基本定义(基于Ubuntu示例进行讲解)

linux环境变量的概念 Linux环境变量&#xff08;准确说应该是shell变量&#xff09;&#xff0c;是直接存储在操作系统中的一组键值对&#xff08;dict类型&#xff09;&#xff0c;用于配置系统和应用程序的操作行为。 【有经验的描述】&#xff1a;它们的工作原理很简单&am…