P
Patpa
Neues Mitglied
- 0
Hi Leute,
hab in meiner App eine Karte mittels osmdroid eingebunden. In diese können Punkte geladen werden. Jetzt hab ich das Problem, dass bei großen Punktmengen die App hängt und es zu Wartezeiten oder auch manchmal zum Absturz kommt. Glaube das Problem liegt nicht an den Punkten selber sondern an den Icons welche ich auf die GeoPoints setze. Hab schon alternativen ausprobiert aber sie nicht zum laufen gebracht. Hoffe jemand kennt sich aus und kann mir sagen wie ich es besser machen kann. Hier mal mein Quelltext:
In onCreate:
Die Methode in der die GeoPoints erzeugt werden:
Hier die Klasse in der die Icons gesetzt werden:
Wäre super wenn jemand der sich auskennt mir vielleicht einen Tipp geben könnte 
Gruß
Patpa
hab in meiner App eine Karte mittels osmdroid eingebunden. In diese können Punkte geladen werden. Jetzt hab ich das Problem, dass bei großen Punktmengen die App hängt und es zu Wartezeiten oder auch manchmal zum Absturz kommt. Glaube das Problem liegt nicht an den Punkten selber sondern an den Icons welche ich auf die GeoPoints setze. Hab schon alternativen ausprobiert aber sie nicht zum laufen gebracht. Hoffe jemand kennt sich aus und kann mir sagen wie ich es besser machen kann. Hier mal mein Quelltext:
In onCreate:
Code:
ArrayList<OverlayItem> mSeries1 = new ArrayList<OverlayItem>();
DefaultResourceProxyImpl defaultResourceProxyImpl = new DefaultResourceProxyImpl(this);
MyS1ItemizedIconOverlay series1PointIconOverlay = new MyS1ItemizedIconOverlay(mSeries1, null, defaultResourceProxyImpl);
mapView.getOverlays().add(series1PointIconOverlay);
if(showSeries1Map == true)
{
setOverlaySeries1();
}
Code:
private void setOverlaySeries1()
{
anzSerie1 = 0;
mSeries1.clear();
while(anzSerie1<B1.length)
{
GeoPoint series1Point = new GeoPoint(B1[anzSerie1],L1[anzSerie1]);
OverlayItem newMyLocationItem = new OverlayItem("My Location", "My Location", series1Point);
mSeries1.add(newMyLocationItem);
anzSerie1++;
}
Code:
private class MyS1ItemizedIconOverlay extends ItemizedIconOverlay<OverlayItem>
{
public MyS1ItemizedIconOverlay(List<OverlayItem> pList,org.osmdroid.views.overlay.ItemizedIconOverlay.OnItemGestureListener<OverlayItem> pOnItemGestureListener,ResourceProxy pResourceProxy)
{
super(pList, pOnItemGestureListener, pResourceProxy);
}
@Override
public void draw(Canvas canvas, MapView mapview, boolean arg2)
{
super.draw(canvas, mapview, arg2);
if(!mSeries1.isEmpty())
{
vForms = Forms1;
vColor = Color1;
setPointVisual();
int k = 0;
GeoPoint in = null;
Point out = new Point();
Bitmap bm = BitmapFactory.decodeResource(getResources(), getResources().getIdentifier(imageName, "drawable", "com.example.paketname"));
canvas.drawBitmap(bm,
out.x - bm.getWidth()/2, //shift the bitmap center
out.y - bm.getHeight()/2, //shift the bitmap center
null);
while(k<anzSerie1)
{
in = mSeries1.get(k).getPoint();
mapview.getProjection().toPixels(in, out);
k++;
}
}
}
@Override
public boolean onSingleTapUp(MotionEvent event, MapView mapView)
{
return true;
}
}
Gruß
Patpa