vue 实现高德地图搜索地址获取经纬度

vue3使用高德地图实现点击获取经纬度以及搜索功能 话不多说直接上干活在此之前你需要有高德地图的 key,这个自己去申请即可1,首先需要在终端安装2,准备一个容器3,在需要使用的页面引入刚才安装的4,这个时候就已经可以了。 阅读详情
<template>
  <div class="map-search_wrapper" id="bmapSearch">
    <div class="header">
      需要查询的地址:
      <el-tooltip class="item" effect="dark" :content="textTip" placement="top" :value="isshowTip" manual>
        <el-input
          type="text"
          top="-140px"
          placeholder="请输入内容"
          @focus="editText"
          v-model="keyWord"
          @keyup.native.13="search"
          clearable
          class="search-input">
        </el-input>
      </el-tooltip>
      <el-button type="primary" size="medium" @click="search">查询</el-button>
      &nbsp;&nbsp;&nbsp;查询结果(经纬度):
      <el-input
        type="text"
        v-model="longAndLat"
        ref="long"
        class="search-input">
      </el-input>
      <el-button type="primary" size="medium" @click="comfirmBmap">填入</el-button>
      <el-button type="warning" size="medium" @click="closeBmap">关闭</el-button>
    </div>
    <div id="container" style="overflow:hidden;"></div>
  </div>
</template>
<script>
// import { collide } from '../../utils/utils';
import { asyncJS } from 'utils/utils.js';
  export default {
    data () {
      return {
        keyWord: '',
        longAndLat: '',
        map: null,
        mapMark: null,
        localSearch: '',
        textTip: '',
        isshowTip: false
      };
    },
    mounted () {
      this.keyWord = this.bmapSearMsg;
      window.onLoadMap = () => {
        this.ready();
      };
      // key 值需要去高德地图去申请才可以
      asyncJS('https://webapi.amap.com/maps?v=1.4.15&key=自己申请的key&callback=onLoadMap');
    },
    created () {
    },
    beforeDestroy () {
    },
    props: ['bmapSearMsg'],
    methods: {
      closeBmap () {
        this.$emit('closeBmap');
      },
      comfirmBmap () {
        this.$emit('comfirmBmap', this.longAndLat);
      },
      ready () {
        this.map = new window.AMap.Map('container', {
          resizeEnable: true
          });
          let _this = this;
          // 为地图注册click事件获取鼠标点击出的经纬度坐标
          this.map.on('click', function (e) {
            let lng = e.lnglat.getLng();
            let lat = e.lnglat.getLat();
              _this.longAndLat = lng + ',' + lat;
              // 打新的标记
              _this.addMarker(lng, lat);
          });
      },
      search () {
        let _this = this;
        window.AMap.plugin('AMap.PlaceSearch', function () {
          var autoOptions = {
            city: '全国',
            map: _this.map, // 展现结果的地图实例
            pageSize: 1, // 单页显示结果条数
            pageIndex: 1, // 页码
            autoFitView: true // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
          };
          var placeSearch = new window.AMap.PlaceSearch(autoOptions);
          placeSearch.search(_this.keyWord, function (status, result) {
            // 搜索成功时,result即是对应的匹配数据
            if (status == 'complete') {
              if (result.poiList.pois.length > 0) {
                let lng = result.poiList.pois[0].location.lng;
                let lat = result.poiList.pois[0].location.lat;
                _this.longAndLat = lng + ',' + lat;
                _this.addMarker(lng, lat);
              } else {
                _this.$message({
                  message: '没有查询到对应的地址',
                  type: 'warning'
                });
              }
            } else if (status == 'no_data') {
              _this.$message({
                message: '没有查询到对应的地址',
                type: 'warning'
              });
            }
          });
        });
      },
      // 清除 marker
      clearMarker () {
        if (this.mapMark) {
          this.mapMark.setMap(null);
          this.mapMark = null;
        }
      },
      // 实例化点标记
      addMarker (lng, lat) {
        // 先清除原来的标记
        // this.clearMarker();
        // 清除所有标记
        this.map.clearMap();
        let _this = this;
        this.mapMark = new window.AMap.Marker({
            position: [lng, lat],
            map: _this.map
        });
        this.mapMark.setMap(this.map);
      },
      editText () {
        this.isshowTip = false;
      }
    }
  };
</script>
<style lang="less">
  .map-search_wrapper{
    .el-input__inner{
      border:1px solid #96a0a9;
    }
  }
</style>
<style lang="less" scoped>
  .map-search_wrapper {
    position: absolute;
    top: -140px;
    left: 0;
    z-index: 9999;
    border-radius:5px;
    width: 100%;
    min-height: 95%;
    min-width: 950px;
    overflow-x: auto;
    padding: 65px 30px 20px 30px;
    background:#050742;
    color: #000000;
    .header {
      width: 100%;
      height: 60px;
      padding-left: 30px;
      position: absolute;
      top: 0;
      left: 0;
      line-height: 4.5;
      font-size:14px;
      color:#fff;
      .search-input {
        display: inline-block;
        width: 28%;
      }
    }
    #container {
      width: 100%;
      height: 88vh;
      background-color: #FFFFFF;
    }
  }
</style>
// 异步js
export const asyncJS = (src) => {
  var jsapi = document.createElement('script');
  jsapi.charset = 'utf-8';
  jsapi.src = src;
  document.head.appendChild(jsapi);
};

Vue中高德地图获取经纬度及逆地理解析的两种方式CDN或NPM(协议必须是https) 否则定位会一直失败 Vue中高德获取经纬度及逆地理解析的两种方式CDN或NPM,复制即可 阅读详情

相关推荐

vue使用高德地图获取经纬度信息

vue使用高德地图获取经纬度信息

海阔天空 2274

vue接入高德地图获取经纬度

根据指引注册成为高德开放平台开发者,并申请 web 平台(JS API)的 key 和安全密钥;地图组件代码:(只将经纬度传给父组件,因为form表单还有与地图无关的数据,所以没放到组件中)新建地图组件 MapContainer.vue 并引入 amap-jsapi-loader。记录一下,虽然简单,但是每次用到都要重新梳理流程,过程很烦躁。:MapContainer组件只将经纬度和地址传到父组件。:在html引入安全密钥(获取经纬度用,不然会报错)按 NPM 方式安装使用 Loader。

Stitch_xiao的博客 2348

PHP特性知识点总结

(1)类型转换之前提到过的是字符串转为整型。其实php手册里面提到了各种类型的转换。先把他放在这里。我们按照php手册上的顺序来介绍,只介绍几个比较常用的。①转化为bool②转化为整型int。

m0_73605862的博客 1295

Android 高德地图计算 Circle 计算上下左右四个点经纬度,Circle和Polygon是否全部包含,计算地图中点到线的最短距离

/** * 假设地球为一半径为R的表面光滑圆球体, * 表面上同一经线圈上相差1"两点间的距离为 2πR/360/3600 * 表面上同一纬线圈上相差1"两点间的距离为 2πR×cos(纬度)/360/3600 * 当R取半径平均值6371km时, * 地球表面上同一经线圈上相差1"两点间的距离约为30.887m * 地球表面上同一纬...

欲邀共赏 1497

从零到一:OptimizePI Pre-layout PDN前仿真实战指南

本文详细介绍了如何使用OptimizePI进行电源完整性(PDN)前仿真,从软件安装配置到元器件建模、去耦电容配置及仿真参数设置,提供了实战技巧和常见问题排查指南。通过OptimizePI的Pre-layout仿真,工程师可以在PCB布局前优化电源分配网络,显著提升设计效率并降低成本。

weixin_28304023的博客 506

巨量千川M-API实战:5分钟搞定短视频计划数据自动获取(Python版)

本文详细介绍了如何利用巨量千川M-API和Python快速搭建自动化工具,实现短视频计划数据的自动获取。通过实战代码演示了从环境准备、Token管理到核心数据接口调用的完整流程,帮助电商运营和技术开发者告别手动导出,高效完成数据汇总与分析。

weixin_29325515的博客 1357

vue2高德地图实现搜索定位、点击获取经纬度和地址

登录高德开放平台(https://lbs.amap.com/?ref=https://console.amap.com/dev/key/app)如图所示填写对应的信息,系统就会自动生成。点击我的应用,添加新应用,再添加Key。

weixin_46262596的博客 441

TC3XX - MCAL知识点(一):新建Tc3xx EB-tresos工程

基于EB-tresos建立Hightec或者Tasking工程的时候,第一个步骤就是需要新建一个EB-tresos的工程,本文记录一下如何新建一个EB-tresos工程,以及对其进行简单的操作。那么Tc3xx的MCAL包含哪些内容呢?

梦想技术家 2968

vue2使用高德地图实现搜索定位和点击获取经纬度和地址

vue2使用高德地图实现搜索定位和点击获取经纬度和地址

ssk777888的博客 7001

HQChart实战教程19 - PC端分时图定制tooltip

HQChart实战教程19 - PC端分时图定制tooltip序效果步骤1. 创建一个外部tooltip的div2. 注册标题绘制事件3. 标题绘制回调函数格式说明eventdataobjtooltip显示函数HQChart代码地址 序 hqchart分时图是不带tooltip, 如果我们需要在PC端页面显示tooltip,我们可以通过注册绘制标题事件,来自己做一个div显示数据。 参考教程HQChart实战教程7-自定义显示手势点击K线显示信息 效果 步骤 1. 创建一个外部tooltip的div 在外

小银 2447

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 195

vue2接入高德地图API实现搜索定位和点击获取经纬度及地址功能

Vue2接入高德地图API实现搜索定位和点击获取经纬度及地址功能

黄团团的个人博客 2313

智能能效管家:基于 ESP32 的智能插座设计与精细化功耗管理实现

针对传统插座无法远程控制、功耗监测缺失、能源浪费严重等问题,本文设计一款基于 ESP32 主控芯片的智能插座。该系统集成 WiFi 无线通信、交流功耗采集、继电器通断控制模块,实现四大核心功能。硬件采用模块化选型与安全接线设计,软件基于 Arduino-ESP32 框架开发,搭载 Mqtt 通信协议与功耗算法,可通过手机 / 云端实时管控设备,有效提升用电安全性与能源利用率。:ESP32;智能插座;功耗管理;远程控制;能耗监测。

weixin_42300449的博客 101

vue2.x+高德地图实现地址搜索、点击获取详细地址和经纬度并且添加标注

实现效果: 实现过程: 1、页面加载时,获取城市定位(pc端只能通过IP定位,安卓和ios可以通过GPS实现具体地址定位) 2、定位成功后,通过城市名或者经纬度完成地图初次渲染 3、绑定点击事件,根据事件返回的数据,进行逆地理编码,获取到详细地址。接着在地图上生成点标记,每次点击需要判断是否已有点标记,如有,则清除掉,然后在本次点击的位置重新生成新的点标记。 大概的实现...

6块腹肌的博客 4174

Floyd (弗洛伊德)算法简述

Floyd在1962年由Robert Floyd以其当前公认的形式出版。算法作为三个嵌套for循环的现代公式首先由Peter Ingerman在1962年描述。Floyd 算法是解决图论问题的比较经典的算法,是解决给定的加权图中顶点间的最短路径的一种算法,可以正确处理有向图的最短路径问题。

慕羽★的博客 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

移动端vue+vant+高德地图实现拖拽选址,周边选址,搜索选址,自动定位,选择城市功能,获取地址经纬度,详细地址

所有文件直接引用,有时候自动定位会报错,需要升级https站点,localhost下可以定位成功

Hzq88888的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

在vue中使用高德地图获取坐标与地址信息(包含点击+搜索)

这大牛写的很详细

sslcsq的博客 6444

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

(11)vue引用高德地图

VUE调用高德地图获取地区名称、经度、纬度。 一、效果: 点击添加位置,弹出选择“选择地图”、“删除”,点击选择地图,展示高德地图页面,点击目标地址即可选中; 最后点击提交按钮,弹框展示所选择的区域: 二、代码: 1、在index.html中引用高德地图js: <!DOCTYPE html> <html> <head> ...

w_t_y_y的博客 998

vue对高德地图的简单使用:点击标记并获取经纬度和详细地址

一个使用vue调用高德地图api实现标记点,获取标记点经纬度和详细地址,实现搜索关键词出现下拉提示的小demo

lemon的博客 1万+

vue实现高德地图选择经纬度

vue实现高德地图选择经纬度

m0_55333789的博客 574

vue 高德地图搜索功能_vue高德地图,实现poi搜索功能,然后点击marker保存地址...

8158921-50a76999e138f579.jpeg高德地图的poi不能点击信息窗口然后获取当前的经纬度,然后我百度了一下,自己修改了样式,最后就成功了。要先引入cdn高德的地址html搜索@click="openMarkerTipById1(index,$event)"@mouseout="onmouseout_MarkerStyle(index+1,$event)":key="index...

weixin_39663933的博客 647

vue3 项目通过高德地图获取经纬度,通过经纬度地图定位

【代码】vue3 项目通过高德地图获取经纬度,通过经纬度地图定位。

qq_46531791的博客 1234

vue使用高德地图API,定位,搜索,拖拽选址

<template> <div> <my-in-content> <!-- 高德地图 --> <div id="container"></div> <div id="details"> <Card style="width:340px;height:280px"> .

jattxgt的博客 3383

vuejs 引入高德地图 点击选取位置获取经纬度及位置信息

【代码】vuejs 引入高德地图 点击选取位置获取经纬度及位置信息。

Crazy___Promise的博客 1514

Web地图开发,在vue3中引入高德地图API

Web地图开发,在vue3中引入高德地图API

pipizhou16的博客 1816
上一篇: javascript利用try-catch验证数据格式是否为json
下一篇: vue实现百度地图打点自定义div显示内容
#麻辣小龙虾#
博客等级 码龄11年 1万+粉丝 235原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值