0

私はグーグルマップにマーカーをうまく表示していますが、問題は、アプリケーションよりも多くのマーカーがある場合、応答が遅くなることです。

public void setMarkerToPoint(ArrayList<BinForLocation> list)
{       
    for(int i = 0;i<list.size();i++)
    {
        Log.v("log",""+list.get(i).getLongitude()); 
        Log.v("log",""+list.get(i).getLatitude()); 
        try
        {
            point = new GeoPoint((int) (Double.parseDouble(list.get(i).getLatitude()) * 1e6),(int) (Double.parseDouble(list.get(i).getLongitude()) * 1e6));
            overlayitem = new OverlayItem(point, list.get(i).getLocationName()+"_@_"+list.get(i).getLatitude()+"_@_"+list.get(i).getLongitude(), list.get(i).getAddress());
            itemizedoverlay.addOverlay(overlayitem);
            mapOverlays.add(itemizedoverlay);
        }
        catch (Exception e)
        {
            Log.v("log",""+e.toString());
            e.printStackTrace();
        }

        point = new GeoPoint((int) (Double.parseDouble(list.get(i).getLatitude()) * 1e6),(int) (Double.parseDouble(list.get(i).getLongitude()) * 1e6));
        CenterLocation(point);
        myMapController.setZoom(14);
    }
}

oncreate()で呼び出しているこの関数

4

1 に答える 1

1

独自のカスタム オーバーレイを作成した場合は、addOverlay メソッドが設定されていないことを確認してください。Populate は、すべてのオーバーレイが追加されたときに最初に発生する必要があります。追加するたびに入力すると、多くのオーバーレイが重なり合ってしまいます。

2 つの方法を使用していることを確認します。

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

public void populateOverlay() {
    populate();
}
于 2012-07-13T07:07:53.800 に答える