我正在使用谷歌地图.我想在标记点击上显示自定义信息窗口.为此,我的自定义信息窗口的左上角应覆盖标记.
问题是我无法在地图上得到标记的精确(x,y)即map-div位置.我第一次可以使用它:
var mposition = map.fromLatLngToDivPixel(marker.getLatLng());
pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(mposition.x,mposition.y));
Run Code Online (Sandbox Code Playgroud)
但是当我拖动地图时,x,y中的标记位置保持不变,因此我的信息窗口显示在错误的位置.请帮助我,即使在拖动/缩放后,如何在地图上获得标记的div相关位置.
谢谢.
Fla*_*rex 17
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);
Run Code Online (Sandbox Code Playgroud)
您现在可以通过px和py访问像素坐标
或者,您可以尝试将fromLatLngToDivPixel更改为fromLatLngToContainerPixel.在平移地图之前,两个函数都将返回相同的值,但在移动或操纵地图中的任何内容后,DivPixel函数将返回与其原始位置相关的更新值,即:+ x/+ y像素.ContainerPixel函数将返回有关容器div左上角的值.
| 归档时间: |
|
| 查看次数: |
26834 次 |
| 最近记录: |