如何在google map v2 android中更改信息窗口(自定义)位置?
我有一个带有谷歌地图的屏幕,在屏幕顶部有一个用于搜索位置的AutotextView,并创建一个自定义信息窗口来显示更多详细信息,问题是当用户单击任何标记自定义窗口弹出窗口作为其默认行为(在屏幕上居中)时,它混淆了AutotextView,我可以更改屏幕上的信息窗口位置吗,例如底部或类似的地方。当前您无法将信息窗口更改为低于标记。这已经在上进行了请求和讨论 我只能建议您在单击到其他位置后设置标记动画。在MarkerClickListener上添加如何在google map v2 android中更改信息窗口(自定义)位置?,android,google-maps,Android,Google Maps,我有一个带有谷歌地图的屏幕,在屏幕顶部有一个用于搜索位置的AutotextView,并创建一个自定义信息窗口来显示更多详细信息,问题是当用户单击任何标记自定义窗口弹出窗口作为其默认行为(在屏幕上居中)时,它混淆了AutotextView,我可以更改屏幕上的信息窗口位置吗,例如底部或类似的地方。当前您无法将信息窗口更改为低于标记。这已经在上进行了请求和讨论 我只能建议您在单击到其他位置后设置标记动画。在MarkerClickListener上添加,并在此处返回true(已处理)。之后,您可以拨打:
,并在此处返回true
(已处理)。之后,您可以拨打:
marker.showInfoWindow();
map.animateCamera(...);
创建一个与默认值相似但位置不同的效果。如果您想在谷歌地图屏幕上用弹出窗口调整标记位置完美中心,请使用下面的代码,因为我已经获得了弹出高度,并基于该更新的y轴。我希望它能帮助您。
谷歌地图信息窗口的位置现在总是在标记的中间上方。如果标记旋转
double angle = MARKER_ROTATION_ANGLE;
double x = Math.sin(-angle * Math.PI / 180) * 0.5 + 0.5;
double y = -(Math.cos(-angle * Math.PI / 180) * 0.5 - 0.5);
marker.setInfoWindowAnchor((float)x, (float)y);
说明:
您必须给出标记的精确旋转,而不是标记的旋转角度。那就可以了。:) 谢谢,我也面临同样的问题。谢谢你的回答和时间,当用户点击标记时,我们可以停止动画制作吗?弹出的信息窗口将打开标记放置的位置。
double angle = MARKER_ROTATION_ANGLE;
double x = Math.sin(-angle * Math.PI / 180) * 0.5 + 0.5;
double y = -(Math.cos(-angle * Math.PI / 180) * 0.5 - 0.5);
marker.setInfoWindowAnchor((float)x, (float)y);