我们如何基于屏幕密度在地图上的特定点显示InfoWindow

时间:2018-11-29 15:29:09

标签: android google-maps-android-api-2 infowindow

我创建了一个自定义的信息窗口以在地图中显示,而不是使用地图视图(在Kotlin中)在片段中显示默认窗口。问题在于,将信息窗口放置在地图的中央,这样标记应位于信息窗口的右上角,而信息窗口应位于屏幕的中心,如屏幕快照所示。

enter image description here

如果您在屏幕截图中看到自定义信息窗口,则该信息窗口显示在标记的顶部,但是我需要将其显示在信息窗口的右上角。

根据this参考,我试图根据投影值将相机移动到信息窗口上的制造商位置。

if (infoWindowView != null) {

                val projection = map?.projection
                val markerPosition = projection?.toScreenLocation(latLng)
                val targetPoint = Point(markerPosition?.x!! - infoWindowView!!.width + 1000, markerPosition.y - infoWindowView!!.height)
                val targetPosition = projection.fromScreenLocation(targetPoint)

                // animate camera to marker position
                cameraUpdate = CameraUpdateFactory.newLatLngZoom(targetPosition, 14f)

             map?.animateCamera(cameraUpdate)

            }

但是我没有得到我所期望的,请给我您的想法。

0 个答案:

没有答案