gpt4 book ai didi

google-maps - 在谷歌地图中获取 (x,y) 中的标记位置

转载 作者:行者123 更新时间:2023-12-04 21:54:52 26 4
gpt4 key购买 nike

我正在使用谷歌地图。我想在标记点击时显示自定义信息窗口。为此,我的自定义信息窗口的左上角应该覆盖标记。

问题是我无法获得准确的 (x,y),即 map 上标记的 map-div 位置。我第一次可以使用:

var mposition = map.fromLatLngToDivPixel(marker.getLatLng());
pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(mposition.x,mposition.y));

但是当我拖动 map 时,x,y 中的标记位置保持不变,因此我的信息窗口出现在错误的位置。
请帮助我,即使在拖动/缩放之后,我如何才能在 map 上获得与 div 相关的确切位置。

谢谢。

最佳答案

var overlay = new google.maps.OverlayView();
overlay.draw = function() {};
overlay.setMap(map);

var proj = overlay.getProjection();
var pos = marker.getPosition();
var p = proj.fromLatLngToContainerPixel(pos);

您现在可以通过 p.x 和 p.y 访问您的像素坐标。

或者,您可以尝试将您的 fromLatLngToDivPixel 更改为 fromLatLngToContainerPixel。在平移 map 之前,这两个函数将返回相同的值,但在移动或操纵 map 中的任何内容之后,DivPixel 函数将返回与其原始位置有关的更新值,即:+x/+y 像素。 ContainerPixel 函数将返回关于容器 div 左上角的值。

关于google-maps - 在谷歌地图中获取 (x,y) 中的标记位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com