Vue2集成高德地图遇到的几个问题

news2024/9/22 23:20:26

文章目录

  • 前言
  • 集成地图实现的功能
  • 遇到的问题
    • Uncaught Error: Invalid Object: LngLat(NaN, NaN)
    • 搜索结果不显示
    • 地图异步加载问题
  • 写在最后

前言

几年没碰过前端了,最近闲来无事在捣鼓一个小项目,项目中一个功能涉及到地图组件,没想到在集成高德地图时遇到好几个问题,耗时3小时最终攻克,遂特此记录。如果有跟我同样情况的,希望可以帮助到你。

集成地图实现的功能

集成地图是为了实现一个功能:用户可以点击地图设置门店地址,并提供给后端省、市、区、详细地址、行政编码、经纬度等,这样前端可以减少设置地址的操作步骤。

为实现这个功能,要在高德地图组件实现以下几个功能:

  1. 地图实现搜索功能,快速定位目标地点。
  2. 在地图上点击可以返回地理数据。
  3. 在点击的地图上添加一个标记,标识用户选择的位置。

高德地图提供的插件 AMap.PlaceSearch,AMap.AutoComplete,AMap.Geocoder,AMap.Geolocation 和监听事件 click 以及 Marker 组件可以实现以上几个功能。

遇到的问题

Uncaught Error: Invalid Object: LngLat(NaN, NaN)

按照官网给的示例在本地运行,结果控制台报了个错,地图没有加载出来。

代码如下

<div id="mapcontainer"></div>
window._AMapSecurityConfig = {
        securityJsCode: "",
      };
      AMapLoader.load({
        key: "", // 申请好的Web端开发者Key,首次调用 load 时必填
        version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
        plugins: ["AMap.Scale"], 
      })
        .then((AMap) => {
          var option={
            // 设置地图容器id
            viewMode: "3D", // 是否为3D地图模式
            zoom: 10, // 初始化地图级别
          }
          this.map = new AMap.Map("mapcontainer",option);
        })
        .catch((e) => {
          console.log(e);
        });

看到这个错误以为是经纬度的问题,打死我也没想到是容器高度问题,最后给mapcontainer设置了高度解决。

#mapcontainer {
  width: 100%;
  height: 400px;
}

这是我的问题还是我的问题?

搜索结果不显示

为了能让用户快速定位目标地点,需要实现搜索功能,实现的效果如下。


还这官网给的示例。

按照官网给的示例把代码搬到项目后,输入提示并没有显示出来。

控制台也没有任何报错,我以为示例代码有问题,检查了插件使用、对比示例代码。

排查了半天,最后发现z-index的问题。

因为项目中有元素z-index是2000,覆盖了搜索提示元素。

amap-sug-resultz-index属性设置高于该值解决问题。

/*地图搜索结果*/
.amap-sug-result {
  z-index: 2999 !important;
}

**注意:**不能在<style scoped>中设置,因为包含scopedstyle最终会添加一个唯一的属性,这样就会导致样式不会被识别。

地图异步加载问题

编辑操作涉及到标记回显到地图上,只能等待 AMapLoader.load 异步加载完成后再执行添加标记操作。

本来是在handleUpdate直接调用addMaker,最后以initAMap传递参数方式处理这个问题。

	handleUpdate(row) {
	      this.reset();
	      const id = row.id || this.ids
	      getXXX(id).then(response => {
			...
	        this.initAMap(addressjson["coordinate"].split(","));
	      });
	},
    initAMap(lnglat) {
      var $this=this;
      window._AMapSecurityConfig = {
        ...
      };
      AMapLoader.load(...)
        .then((AMap) => {
          if(lnglat){
            $this.addMaker(lnglat)
          }
        })
        .catch((e) => {
          console.log(e);
        });
    },
	addMakre(lnglat){
	var marker = new AMap.Marker({
		        position: new AMap.LngLat(lnglat[0],lnglat[1]),
		        offset: new AMap.Pixel(-10, -10),
		        icon: 'https://vdata.amap.com/icons/b18/1/2.png'
	     	 });
			$this.map.add(marker);
	}

不知道各位都是怎么处理的。

写在最后

花费我三个小时解决,主要还是没有经验的原因。不知道各位前端大佬在遇到这些个问题是怎么高效排查并解决的,深刻体会到经验的重要性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

敏捷项目管理:团队高效协作的关键

在当今快节奏的市场环境中&#xff0c;企业必须具备快速响应变化的能力。无论是产品研发、软件开发还是市场推广&#xff0c;灵活应对变化和高效管理项目已成为企业成功的关键。于是&#xff0c;敏捷开发这一理念越来越多地被各行业团队采纳&#xff0c;成为了他们高效协作、及…

git学习【持续更新中。。。】

git学习【持续更新中。。。】 文章目录 git学习【持续更新中。。。】一、Git基本操作1.创建本地仓库2.配置本地仓库1.局部配置2.全局配置 3.认识工作区、暂存区、版本库4.添加文件5.修改文件6.版本回退7.撤销修改8.删除文件9.理解分支10.创建、切换、合并分支11.删除分支12.合并…

B站开源长文本大模型:我很小但很能“装”

一、“2% GPT size, yet powerful.” 模型简介 Index-1.9B-32K 是一个拥有 1.9B &#xff08;19亿&#xff09;参数并具备 32K 上下文长度的语言模型&#xff08;这意味着&#xff0c;这个超小精灵可以一次性读完 3.5 万字以上的文档&#xff09;。 在多项长文本评测任务中&am…

单链表的实现(C语言)

目录 1.单链表 1.1 实现单链表 1.1.1 文件创建 1.1.2 链表功能了解 1.1.3 链表的结点 1.1.4 链表的函数声明 1.1.5 链表功能的实现 链表是一种链式结构&#xff0c;物理结构不连续&#xff0c;逻辑结构是连续的&#xff0c;在计算机中链表的实际存储是按照一个结点内存放…

基于springboot+vue实现的智能垃圾分类系统 (源码+L文+ppt)4-063

摘 要 本论文主要完成不同用户的权限划分&#xff0c;不同用户具有不同权限的操作功能&#xff0c;系统包括用户、物业和管理员模块&#xff0c;主要功能有用户、物业、垃圾站点、垃圾投放、验收信息、积分商城、积分充值、通知物业等管理操作。 关键词&#xff1a;智能垃圾…

微信支付开发-前端api实现

一、操作流程图 二、代码实现 <?php /*** 数字人答题业务流* User: 龙哥三年风水* Date: 2024/9/11* Time: 14:59*/ namespace app\controller\shuziren; use app\controller\Base; use app\model\param\QuestionParam as PQPModel; use app\model\answer\QuestionBank; u…

codemirror 代码在线编辑器基本使用

CodeMirror 是一个强大的基于浏览器的文本编辑器组件&#xff0c;主要用于网页中创建可编辑的源代码区域&#xff0c;特别适用于编写和展示程序代码。它支持多种编程语言的语法高亮、代码折叠、自动补全、查找替换等多种高级编辑特性。 npm install vue-codemirror --save 或者…

RabbitMQ Spring客户端使用

注解声明式队列和交换机 java自带序列化工具类&#xff0c;将java对象序列化为字节数组&#xff0c;用于网络传输。 jdk序列号存在缺陷&#xff0c;&#xff08;不安全&#xff0c;占用空间大等&#xff09; 推荐使用JSON的序列化&#xff1a; springboot扫描包使配置生效&…

WordPress建站钩子函数及使用

目录 前言&#xff1a; 使用场景&#xff1a; 一、常用的wordpress钩子&#xff08;动作钩子、过滤器钩子&#xff09; 1、动作钩子&#xff08;Action Hooks&#xff09; 2、过滤器钩子&#xff08;Filter Hooks&#xff09; 二、常用钩子示例 1、添加自定义 CSS 和 JS…

谈谈OpenAI o1的价值意义及RL 的Scaling Law

蹭下热度谈谈OpenAI o1的价值意义及RL 的Scaling law。 一.OpenAI o1是大模型的巨大进步 1.1 我觉得OpenAI o1是自GPT 4发布以来&#xff0c;基座大模型最大的进展&#xff0c;逻辑推理能力提升的效果和方法比我想的要好&#xff0c;GPT 4o和o1是发展大模型不同的方向&#x…

计算机毕业设计 乡村生活垃圾管理系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

视觉Transformer(ViT) :全面超越CNN,看懂这篇文章就没什么能难倒你了!

【视觉Transformer】(Vision Transformer, ViT) 是一种革命性的技术&#xff0c;它将Transformer架构应用于视觉识别任务&#xff0c;通过自注意力机制来捕捉图像中的特征关系&#xff0c;显著增强了模型对视觉信息的解析力。这一领域的研究不仅打破了传统卷积神经网络&#xf…

【BFS专题】— 解决拓扑排序问题

拓扑排序介绍&#xff1a; 1、课程表 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 通过Map<Integer, List<Integer>> 来创建邻接图&#xff0c;数组来表示入度然后遍历课程数组&#xff0c;建图然后再拓扑排序&#xff0c;bfs最后在遍历入度数组&…

ADB ROOT开启流程

开启adb root 选项后&#xff0c;执行如下代码&#xff1a; packages/apps/Settings/src/com/android/settings/development/AdbRootPreferenceController.java mADBRootService new ADBRootService(); Override public boolean onPreferenceChange(Preference preference…

(十五)、把自己的镜像推送到 DockerHub

文章目录 1、登录Docker Hub2、标记&#xff08;Tag&#xff09;镜像3、推送&#xff08;Push&#xff09;镜像4、查看镜像5、下载镜像6、设置镜像为公开或者私有 1、登录Docker Hub 需要科学上网 https://hub.docker.com/ 如果没有账户&#xff0c;需要先注册一个。登录命令如…

基于用户增长的动销方案实践!

在竞争激烈的市场环境下&#xff0c;实现用户增长和推动产品动销至关重要。 首先&#xff0c;明确市场定位与目标用户群体&#xff0c;通过市场调研深入了解用户需求和痛点&#xff0c;进行精准营销。同时&#xff0c;不断优化用户体验&#xff0c;提升产品质量和性能&#xff…

服装企业必备增长利器:高效商品管理系统

在时尚界的快车道上&#xff0c;服装企业如同驾驶着赛车&#xff0c;在瞬息万变的市场中疾驰。为了在这场激烈的竞赛中保持领先&#xff0c;服装企业迫切需要一把能够助其精准操作、高效运转的钥匙——商品管理系统。这不仅仅是一个软件工具&#xff0c;更是企业应对市场挑战、…

碰撞检测 | 图解线段几何与线段相交检测原理(附ROS C++可视化)

目录 0 专栏介绍1 线段与线段相交检测2 线段与圆相交检测3 线段与矩形相交检测4 算法仿真与可视化4.1 核心算法4.2 仿真实验 0 专栏介绍 &#x1f525;课设、毕设、创新竞赛必备&#xff01;&#x1f525;本专栏涉及更高阶的运动规划算法轨迹优化实战&#xff0c;包括&#xf…

[Java]maven从入门到进阶

介绍 apache旗下的开源项目,用于管理和构建java项目的工具 官网: Welcome to The Apache Software Foundation! 1.依赖管理 通过简单的配置, 就可以方便的管理项目依赖的资源(jar包), 避免版本冲突问题 优势: 基于项目对象模型(POM),通过一小段描述信息来管理项目的构建 2…

第六天旅游线路规划

第五天&#xff1a;从贾登峪返回乌鲁木齐&#xff1b; 第六天&#xff1a;从乌鲁木齐到天山天池&#xff0c;晚上回乌鲁木齐住宿。 第六天从乌鲁木齐到天山天池景区入口的的规划结果见下图&#xff1a; 1、行程安排 根据上面的耗时情况&#xff0c;规划一天的行程安排如下&a…