gpt4 book ai didi

android - 如何根据屏幕位置而不是 map 位置定位 InfoWindows?

转载 作者:太空狗 更新时间:2023-10-29 12:41:02 24 4
gpt4 key购买 nike

我的自定义信息窗口比默认的要大。这意味着我必须在单击标记时降低 map 中心的点,以便完整显示信息窗口。问题是,由于我将 map 位置向下移动了特定的纬度,因此本地图放大时,偏移量太大。相反,当 I 拉远时,它向下移动的不够多。如何相对于屏幕高度定位信息窗口?

屏幕的默认外观。 X是infoWindow的 anchor

|-----|
|-----|
|--X--|
|-----|
|-----|

我想要的:(无论缩放级别如何)

|-----|
|-----|
|-----|
|--X--|
|-----|

最佳答案

可以降低 map 以标记为中心的点。抱歉,您丢失了默认的信息窗口实现。 别担心您的自定义信息窗口会很容易移植到此方法。这是处理 onMarkerClick 的好方法,因为现在您的信息窗口可以处理链接到外部内容的按钮,信息窗口在 Google map 应用程序上执行的任何操作(如导航按钮)都可以在 onMarkerClick() 中完成带有弹出窗口或对话框 fragment 。

按照以下步骤操作。

  1. 告诉 map 您正在处理 onMarkerClick。 mMap.setOnMarkerClickListener(this);
  2. 重写 onMarkerClick(Marker marker) 为
  3. 显示一个弹出窗口 http://android-er.blogspot.com/2012/03/example-of-using-popupwindow.html或对话 fragment 。
  4. 移动 map ,使您的标记位于屏幕底部。计算新的经纬度涉及到考虑缩放和北方的方向。 This library会有所帮助。 mMap.moveCamera(CameraUpdateFactory.newLatLng(markers newlat newlon));
  5. return false; 从 onMarkerClick 事件告诉 android 你的处理标记。

请注意,对于您要使用默认 map 信息窗口的标记,从 onMarkerClick() 返回 true。

关于android - 如何根据屏幕位置而不是 map 位置定位 InfoWindows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25749755/

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