1

OSM droid とそのボーナス パックを使用して、マップ上の関心のあるポイント (POI) アイコンがクリックされたときにバルーン ポップアップを作成しています。ItemizedOverlayWithBubbleをうまく機能させることができました。ただし、場合によっては、POI アイコンが非常に近くにあるため、使いたいものを自由にタップするのが難しくなります。私が考えた解決策は、POI を 1 つのアイコンにまとめ、一番上に番号を付けることでした。私はこれもうまく機能しています。

だから私がしたいのは 、小さなスクロール可能で選択可能なリストを表示するItemizedOverlayWithBubbleを持つことです。リスト内のアイテムをクリックすると、POI について詳しく説明する追加の画面が表示されます。

このチュートリアルで見つかった手がかりから、以下のコードが機能すると仮定しましたが、これは機能せず、タイトル説明のベクトルの最後の項目のみを表示します。

これにアプローチする方法についてのアドバイスは大歓迎です。

       //================================================================================================================
      /**
       * Adds a map information bubble with a selectable list if items.
       * 
       * @param location The location of the info bubble on the map,
       * @param titles The titles to go in the info bubble.
       * @param descriptions The descriptions to go in the info bubble.
       * @param mapMarkerType The map marker type.
       */
      //================================================================================================================
      public void addMapInfoList(GeoPoint location, Vector<String> titles, Vector <String> descriptions, int mapMarkerType)
      {
           new DefaultResourceProxyImpl(this.ctx);
           Drawable localDrawable = getMapMarker( 8);

           ArrayList<ExtendedOverlayItem> localArrayList = new ArrayList<ExtendedOverlayItem>();//items list

           int i = 0;
           for (String title: titles)
           {

            String description = descriptions.get(i);
            ExtendedOverlayItem localExtendedOverlayItem = new ExtendedOverlayItem(title, description, location, this.ctx);
            localExtendedOverlayItem.setImage(this.ctx.getResources().getDrawable(2130837507));
            localExtendedOverlayItem.setMarkerHotspot(OverlayItem.HotspotPlace.CENTER);
            localExtendedOverlayItem.setMarker(localDrawable);
            localArrayList.add(localExtendedOverlayItem); 
            i++;
           }

           ItemizedOverlayWithBubble<ExtendedOverlayItem> localItemizedOverlayWithBubble = new ItemizedOverlayWithBubble<ExtendedOverlayItem>(this.ctx, localArrayList, this.map);

          // ItemizedOverlayWithBubble<ExtendedOverlayItem> poiMarkers =   new ItemizedOverlayWithBubble<ExtendedOverlayItem>(this, poiItems, map);

           this.map.getOverlays().add(localItemizedOverlayWithBubble);
      }//================================================================================================================
4

0 に答える 0