1

当在地图上单击兴趣点 (POI) 图标时,我正在使用 OSM 机器人及其奖励包来创建气球弹出窗口。我能够让ItemizedOverlayWithBubble工作得很好。然而,在某些情况下,POI 图标非常接近,因此很难用于自由点击他们想要的那个。我认为的一种解决方案是将 POI 合并为一个顶部带有数字的图标。我也有这个工作得很好。

所以我想做的是有一个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