一旦显示地图,如何在MapView上显示气球?

时间:2011-07-03 16:09:10

标签: android android-mapview

我使用android-mapviewballoons库来显示气球。 因此,一旦用户点击我的标记,就会显示气球。

我的问题:如何在不等待用户点击的情况下显示特定项目的气球?

更新。如何识别我? 目前我有以下内容:

public class Map extends MapActivity {
    public void onCreate(Bundle savedInstanceState) {
        // here I have extras.getDouble("lat") and extras.getDouble("lng") - 
        // the location balloon should be shown for
        ...
        itemizedOverlay = new MapOverlay(drawable, mapView);
        for (int i = 0; i < items.getCount(); i++) {
           // here I add markers, one of them will have lat and lng equal to 
           // the values passed in extras

    public class MapOverlay extends BalloonItemizedOverlay<OverlayItem> {
        ...
        protected OverlayItem createItem(int i) {

另外,关于以下代码:

//  BalloonOverlayView is a raw type. References to generic type BalloonOverlayView<Item> should be parameterized
BalloonOverlayView bov = new BalloonOverlayView(context, 50);
// What is item there? should be getItem(i)?
bov.setData(item);
// The method setPosition(int) is undefined for the type BalloonOverlayView
BalloonOverlayView.setPosition(i);

2 个答案:

答案 0 :(得分:4)

请参阅this tutorial.

@Override protected OverlayItem createItem(int i)方法中,您可以为特定索引的气球覆盖图充气。假设您的特定点是2,那么您可以在上面的方法中执行以下操作

if(i==2){
BalloonOverlayView bov = new BalloonOverlayView(context, 50);
          bov.setData(item);
          BalloonOverlayView.setPosition(i);
          BalloonOverlayView.setGeoPoint(geoPoint);

          MapView.LayoutParams params = new MapView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, geoPoint,MapView.LayoutParams.BOTTOM_CENTER);
          params.mode=MapView.LayoutParams.MODE_MAP;
          mapView.addView(bov, params);
}

答案 1 :(得分:3)

试试这个

itemizedOverlay.onTap(point2, mapView);

你必须通过Geopoint识别它,这里是描述

的onTap

public boolean onTap(GeoPoint p,MapView mapView)

处理点击事件。 点击只会在项目落在上时处理,并覆盖onTap(int)以返回true

气球库已经覆盖了它,所以你只需要调用onTap方法。