2014-02-10 68 views
2

我有一个谷歌地图的屏幕,在屏幕顶部有一个搜索地点的AutotextView,并使自定义信息窗口显示更多的细节,问题是当用户点击任何标记自定义窗口弹出为他们的默认行为(中心所以它混合了autotextview,我可以改变屏幕上的信息窗口位置,即底部或类似的东西。如何更改信息窗口(自定义)在google map v2 android中的位置?

+0

见http://stackoverflow.com/questions/17023222/android-map-api-v2-set-custom-infowindow-position – ridoy

+0

感谢,同样的问题,我面对.. –

回答

5

如果你想调整标记位置完美的中心在谷歌地图屏幕弹出,然后请使用下面的代码,我已经得到弹出高度和基于更新y轴。我希望它会帮助你。

public boolean onMarkerClick(Marker marker) { 

     //Please use fix height popup 
     float container_height = getResources().getDimension(R.dimen.DIP_300); 

     Projection projection = mGoogleMap.getProjection(); 

     Point markerScreenPosition = projection.toScreenLocation(marker.getPosition()); 
     Point pointHalfScreenAbove = new Point(markerScreenPosition.x,(int) (markerScreenPosition.y - (container_height/2))); 

     LatLng aboveMarkerLatLng = projection.fromScreenLocation(pointHalfScreenAbove); 

     marker.showInfoWindow(); 
     CameraUpdate center = CameraUpdateFactory.newLatLng(aboveMarkerLatLng); 
     mGoogleMap.moveCamera(center); 
     mGoogleMap.animateCamera(center); 
     marker.showInfoWindow(); 

     return true; 


} 
+0

谢谢Piyush,这对我很有用。 :) –

+0

完美运作 –

0

目前您无法将信息窗口更改为低于标记。这已经在gmaps-api-issues上要求和讨论过了。

我只能建议你在点击到不同的位置后设置动画标记。在那里添加OnMarkerClickListener并返回true(已处理)。之后,你可以拨打:

marker.showInfoWindow(); 
map.animateCamera(...); 

创建一个类似于默认的效果,但使用不同的位置。

+0

谢谢您答案和时间,当用户点击标记时,我们可以停止动画,弹出信息窗口将打开放置标记的位置。 –

相关问题