高德地图-当默认打开InfoWindow信息窗体时,setCenter()无法居中

本文主要是介绍高德地图-当默认打开InfoWindow信息窗体时,setCenter()无法居中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在研究地图的 API,对比了一下 高德地图百度地图,最后选择了高德地图。在开发遇到点小问题,记录一下。

背景

需求功能是,点击任意(维护的)坐标后,跳转到该坐标,并以该坐标为中心,并且默认显示该地址 MarkerinfoWindow 信息窗体。

问题是,当点击任意坐标后, infoWindow 信息窗体可以默认打开,但是无法将地图中心设置为当前 Marker 的坐标,位置无法居中。用户体验十分不好。

解决方案

问题代码:

const onSelect = (position: number[], title: string) => {  const content = `  <div style="width: fit-content; padding: 4px; text-align: center;">  <b>${title}</b>  <br/>  <br/>  坐标:[${position[0]}, ${position[1]}]  </div>`;  // 设置坐标为屏幕中心map.setCenter(position);  const marker = new AMap.Marker({  position: position  });  const infoWindow = new AMap.InfoWindow({  isCustom: false, content: content,  offset: new AMap.Pixel(0, -35)  });  map.add(marker);  // 显示信息窗体infoWindow.open(map, new AMap.LngLat(...position));  // 信息窗体点击事件marker.on('click', (e: any) => infoWindow.open(map, e.target.getPosition()));  
};

解决方案:

const onSelect = (position: number[], title: string) => {  const content = `  <div style="width: fit-content; padding: 4px; text-align: center;">  <b>${title}</b>  <br/>  <br/>  坐标:[${position[0]}, ${position[1]}]  </div>`;  const marker = new AMap.Marker({  position: position  });  const infoWindow = new AMap.InfoWindow({  isCustom: false, content: content,  offset: new AMap.Pixel(0, -35)  });  map.add(marker);  // 显示信息窗体infoWindow.open(map, new AMap.LngLat(...position));  // 信息窗体点击事件marker.on('click', (e: any) => infoWindow.open(map, e.target.getPosition()));  // 设置坐标为屏幕中心map.setCenter(position);
};

infoWindow 信息窗体代码放在设置坐标中心的上面即可

猜测渲染周期导致

这篇关于高德地图-当默认打开InfoWindow信息窗体时,setCenter()无法居中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/630490

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再