我的自定义信息窗口大于默认值。这意味着我必须降低地图在单击标记时的中心点,这样信息窗口将完全显示出来。问题是,由于我把地图的位置向下移动了一个特定的纬度,当地图被放大时,偏移量太大了。相反地,当i放大时,它并没有向下移动足够远。如何相对于屏幕高度定位信息窗口?
屏幕的默认外观。x是infowindow的锚
|-----|
|-----|
|--X--|
|-----|
|-----|
我想要的是:(无论缩放级别如何)
|-----|
|-----|
|-----|
|--X--|
|-----|
最佳答案
降低地图在标记上的中心点。抱歉,您丢失了默认的信息窗口实现。不要担心您的自定义信息窗口将很容易移植到此方法。这是一个很好的处理onMarkerClick
的方法,因为现在你的信息窗口可以处理链接到外部内容的按钮,任何信息窗口在google地图应用程序上做的事情,比如nav按钮,都可以在onmarkerclick()上用弹出窗口或对话框片段来完成。
遵循以下步骤。
告诉地图你正在处理onmarkerclick。mMap.setOnMarkerClickListener(this);
覆盖onmarkerclick(marker marker)到
显示弹出窗口
http://android-er.blogspot.com/2012/03/example-of-using-popupwindow.html
或对话片段。
移动地图,使您的标记位于屏幕底部。
计算新的纬度需要考虑变焦和北方的方向。This library
会有帮助的。mMap.moveCamera(CameraUpdateFactory.newLatLng(markers newlat newlon));
return false;
从onmarkerclick事件告诉android
处理标记。
注意,对于要使用默认地图信息窗口的标记,onmarkerclick()返回true。