获取重叠Marker信息

最近使用google map v2 api进行开发,遇到一个问题:当在地图上创建多个Marker时,可能会出现:在一定的缩放比例下,许多Marker重叠到一起的情况。我想实现当鼠标放到该区域的时候,显示多个Marker的信息。


在Google,百度上搜索了半天,终于找到了解决方法:


大体的思路是:


注册mouseover 事件,获取到鼠标的坐标(经纬度),然后遍历地图上所有的Marker,最核心的是判断鼠标的坐标是否包含在Marker图标坐标的范围内。使用的方法是:


function markerIconContainsLatLng(myMarker, myLatLng){
var mapProjection=map.getCurrentMapType().getProjection(),mapZoomLevel=map.getZoom(), iconSize, iconAnchorPoint,iconAnchorPointOffset, iconBoundsPointSw,iconBoundsPointNe,
iconBoundsLatLngSw, iconBoundsLatLngNe;
iconSize=myMarker.getIcon().iconSize;
iconAnchorPoint=mapProjection.fromLatLngToPixel(myMarker.getLatLng(),
mapZoomLevel);
iconAnchorPointOffset=myMarker.getIcon().iconAnchor;
iconBoundsPointSw=new GPoint(iconAnchorPoint.x-
iconAnchorPointOffset.x, iconAnchorPoint.y-iconAnchorPointOffset.y
+iconSize.height);
iconBoundsPointNe=new GPoint(iconAnchorPoint.x-iconAnchorPointOffset.x
+iconSize.width, iconAnchorPoint.y-iconAnchorPointOffset.y);
iconBoundsLatLngSw=mapProjection.fromPixelToLatLng(iconBoundsPointSw,
mapZoomLevel);
iconBoundsLatLngNe=mapProjection.fromPixelToLatLng(iconBoundsPointNe,
mapZoomLevel);
iconBounds=new GLatLngBounds(iconBoundsLatLngSw, iconBoundsLatLngNe);
if (iconBounds.containsLatLng(myLatLng)) {
return true;

} else {
return false;
}
};


原文链接:http://groups.google.com/group/google-maps-api/browse_thread/thread/d84111fb1f35e085?pli=1


获取鼠标的坐标的方法 http://vikku.info/programming/google-maps-v2/get-lattitude-longitude-onmouseover-and-onmouseclick-google-map-v2.htm


希望能帮到大家!

### Marker 工具简介及其使用方法 #### 什么是 MarkerMarker 是一款开源工具,能够快速将 PDF 文件转换为 Markdown 格式的文档,并保持高精度的内容还原[^1]。它不仅支持基本的文本提取功能,还提供了 OCR(光学字符识别)能力以处理扫描版 PDF 文档。 --- #### 如何安装 Marker? ##### Windows 平台下的安装步骤 在 Windows 上安装 Marker 需要先配置其运行环境并安装必要的依赖项。以下是具体的操作指南: 1. **安装 Python 和 Pip** 确保已安装最新版本的 Python (建议 >=3.7),并通过 `pip` 来管理第三方库。 2. **安装所需依赖包** 执行以下命令来安装 Marker 运行所需的依赖软件包: ```bash pip install surya_ocr pip install scikit-learn pip install texify pip install pdftext pip install rapidfuzz ``` 3. **下载 Marker 和预训练模型** 访问官方仓库地址或镜像站点获取最新的 Marker 版本以及对应的 OCR 模型文件[^3]。 4. **设置 GPU 支持(可选)** 如果设备具备 NVIDIA 显卡且希望加速 OCR 处理速度,则需进一步调整代码逻辑。编辑 `marker/settings.py` 文件,在类定义前添加如下内容以检测 CUDA 是否可用: ```python import torch print(torch.cuda.is_available()) cuda = 'cuda' if torch.cuda.is_available() else 'cpu' ``` --- #### 常见问题解决 ##### Google Maps APIMarkerWithLabel 插件的应用注意事项 当尝试利用 MarkerWithLabel.js 实现在 Google 地图中标记带有标签的功能时,可能会遇到某些异常情况,比如多个标记重叠于同一位置等问题。此类现象通常源于插件版本过低所致。因此推荐升级至 V1.9 或更高版本后再重新部署脚本[^2]。 --- #### 总结 综上所述,无论是作为日常办公辅助还是科研资料整理利器,Marker 都展现出了卓越的表现力和技术优势。对于初学者而言,按照前述指导完成基础搭建后即可轻松体验到该产品的魅力所在。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

感谢一路走过的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值