2

マップのドロップ ピンをクリックしているときに、オーバーレイに表示する画像があります。おそらく、2 つ以上の画像が同じ緯度と経度に属しています。この場合、特定の緯度と経度に属するすべての画像を表示したい..! どうすればこれを達成できますか?

これは私が試したことです..!

   for (int i = 0; i < AllData.neardeallist.size(); i++) {
        mapOverlays = mapview.getOverlays();

        drawable = this.getResources().getDrawable(R.drawable.pin);
        itemizedOverlay = new CustomItemizedOverlay<CustomOverlayItem>(
                drawable, mapview);

        point = new GeoPoint((int) (Double.parseDouble(AllData.neardeallist
                .get(i).getLatitude()) * 1E6),
                (int) (Double.parseDouble(AllData.neardeallist
                        .get(i).getLongitude()) * 1E6));
        CustomOverlayItem overlayItem = new CustomOverlayItem(point,
                StringEscapeUtils.unescapeXml(StringEscapeUtils
                        .unescapeHtml4(AllData.neardeallist.get(i)
                                .getDealTitle())),

                StringEscapeUtils.unescapeXml(StringEscapeUtils
                        .unescapeHtml4(AllData.neardeallist.get(i)
                                .getDescription()))
                        + ":"
                        + AllData.neardeallist.get(i).getDealId()
                        + ":" + AllData.neardeallist.get(i).getDealKey(),
                AllData.neardeallist.get(i).getDealImg());

        itemizedOverlay.addOverlay(overlayItem);
        mapOverlays.add(itemizedOverlay);

私のカスタムオーバーレイクラス..!

public class CustomItemizedOverlay extends BalloonItemizedOverlay {

private ArrayList<CustomOverlayItem> m_overlays = new ArrayList<CustomOverlayItem>();
private Context c;

public CustomItemizedOverlay(Drawable defaultMarker, MapView mapView) {
    super(boundCenter(defaultMarker), mapView);
    c = mapView.getContext();
}

public void addOverlay(CustomOverlayItem overlay) {
    m_overlays.add(overlay);
    populate();
}

protected CustomOverlayItem createItem(int i) {
    return m_overlays.get(i);
}

public int size() {
    return m_overlays.size();
}

protected boolean onBalloonTap(int i, CustomOverlayItem item) {


        String[] Address = m_overlays.get(i).getSnippet().split(":");

        Intent intent = new Intent(c, DealDetails.class);
        intent.putExtra("deal_id", Address[1]);
        intent.putExtra("deal_key", Address[2]);
        c.startActivity(intent);


    return true;
}

@Override
protected BalloonOverlayView<CustomOverlayItem> createBalloonOverlayView() {
    // use our custom balloon view with our custom overlay item type:
    return new CustomBalloonOverlayView<CustomOverlayItem>(getMapView()
            .getContext(), getBalloonBottomOffset());
}

}

4

0 に答える 0