2011-07-03 11 views
1

私はバルーンを表示するためにandroid-mapviewballoonsライブラリを使用します。 ユーザーがマーカーをクリックすると、バルーンが表示されます。マップが表示されたら、MapViewにバルーンを表示する方法は?

私が持っている質問:ユーザーのクリックを待たずに特定のアイテムのバルーンを表示する方法は?

Upd。私はどのように識別するのですか? 現在、私は次のようにあります

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); 
+0

このライブラリの開発者には、このStackOverflowの質問が表示される場合と表示されない場合があります。 – CommonsWare

+0

ありがとう、@ CommonSWare。実際には、私はすでに彼にメッセージを送ってきましたが、ここで誰かが同じことを既に実行していることを願っています。 –

答えて

4

Plaseあなたが特定のインデックスのためにそのバルーンのovarlayを膨らませることができ@Override protected OverlayItem createItem(int i)方法でthis tutorial.

を参照してください。 。あなたの特定のポイントは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); 
} 
+0

ありがとうございますが、私の質問には答えません。 –

+0

@LA_地図上のすべてのピン、またはそれを選択せず​​に特定のものだけのボールペンを表示したいですか? 1つの特定のマーカーについて、そのマーカーを選択することなく – Harshad

+0

。 –

3

上記の方法で次の手順を実行することができますされているとし、ここで説明

ONTAP

は、あなたがGeopointを通してそれを識別するために持っているこの

itemizedOverlay.onTap(point2, mapView); 

をお試しください

パブリックブール値onTap(GeoPoint p、MapView mapView)

タップイベントを処理します。 タップは、それがアイテムのランド場合にのみ処理されますし、風船のライブラリがすでにそれを上書き

trueを返すことONTAP(int)をオーバーライドしているので、あなただけのONTAPメソッドを呼び出す必要があります。

関連する問題