如何将叠加项目分配给地理点列表

时间:2012-03-13 17:47:37

标签: android google-maps google-maps-markers

我写了以下编码:

locations.add(new GeoPoint((int)(3.1667652777 * 1E6),(int)(101.70002277 * 1E6)));
locations.add(new GeoPoint((int)(3.16676 * 1E6),(int)(101.6836 * 1E6)));

注意:我正在使用ArrayList进行上述操作。 如何为上述位置添加叠加项?我看到android开发网站提到:

GeoPoint point2 = new GeoPoint(35410000, 139460000);
OverlayItem overlayitem2 = new OverlayItem(point2, "Sekai, konichiwa!", "I'm in Japan!");

是否需要做类似网站共享的事情,或者我可以坚持使用我的编码?

1 个答案:

答案 0 :(得分:0)

<强> ItemizedOverlayClass

public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {

    private ArrayList<OverlayItem> myOverlays ;

    public MyItemizedOverlay(Drawable defaultMarker) {
        super(boundCenterBottom(defaultMarker));
        myOverlays = new ArrayList<OverlayItem>();
        populate();
    }

    public void addOverlay(OverlayItem overlay){
        myOverlays.add(overlay);
        populate();
    }

    @Override
    protected OverlayItem createItem(int i) {
        return myOverlays.get(i);
    }

    // Removes overlay item i
    public void removeItem(int i){
        myOverlays.remove(i);
        populate();
    }

    // Returns present number of items in list
    @Override
    public int size() {
        return myOverlays.size();
    }


    public void addOverlayItem(OverlayItem overlayItem) {
        myOverlays.add(overlayItem);
        populate();
    }

    @Override
    protected boolean onTap(int index) {
        // TODO Auto-generated method stub
        return null;
    }
}

<强> ActivityClass

private MyItemizedOverlay nearPicOverlay;    
nearPicOverlay = new MyItemizedOverlay(atmPic);
                for (int i = 0; i < length; i++) {
                    nearatms[i] = new OverlayItem(new GeoPoint((int)(latitude) * 1E6),(int)((longitude) * 1E6),"", null);
                    nearPicOverlay.addOverlay(nearatms[i]);
                }

请检查括号,因为我没有eclipse,只是直接输入。希望这会有所帮助......