I have found that when having a lot of items on overlay, it's better
to have a overlay that does all the drawing, not use ItemisedOverlay.
You would have to do input translation, but the UI is much smoother.

On 14 янв, 06:45, Stephan Wiesner <[email protected]> wrote:
> Now, thats an interesting idea. I will look into the bitmaps right
> away.
> I did check a lot of performance checking and tuning loading and
> creting my objects, thats smooth by now. I am not very experienced
> with the drawing part, though. Like you pointed out, the drawing is
> propably too expensive/done too often. Most of the time, the map just
> sits there after all...
>
> Thanks and tired greetings from Bern,
> Stephan
>
> On 14 Jan., 00:45, Bob Kerns <[email protected]> wrote:
>
> > A couple things MrChaz and TreKing didn't touch on.
>
> > First, I'd make certain you're not doing something to cause the draw
> > method to be called 7000 times!
>
> > Second, I'd make sure you're not doing something horribly expensive in
> > there -- perhaps something allocating a lot of memory and triggering
> > the GC. That's probably not your issue, but capturing some timings on
> > the drawing calls is probably worth your while anyway.
>
> > Third, and probably most important -- rather than drawing 7000 items
> > on each draw call -- draw the 7000 items into a bitmap, and draw that
> > bitmap, translated and scaled appropriately. When you get off the edge
> > of the bitmap, redo it for the new position and/or scale. Make it big
> > enough to allow for smooth scrolling in the immediate vicinity.
>
> > You can draw your 7000 items with a degree of transparency, so they
> > overlap and add up density. That's not the ideal way to show
> > clustering, but it's a start. A more sophisticated approach would be
> > to draw into a grayscale bitmap with a density distribution image, and
> > use the resulting density bitmap to index a color map.
>
> > Or if you prefer iconified clustering, rather than visual illustration
> > of the clustering: wherever the density is over a threshold, find the
> > centroid of that area, integrate the total score for that area, and
> > draw an icon of that diameter.
>
> > On Jan 12, 11:10 pm, Stephan Wiesner <[email protected]>
> > wrote:
>
> > > Hi,
> > > my app is supposed to display about 7000 items on a mapview (distributed
> > > over a whole country), but I have serious performance issues with this.
> > > Currently I only display the items that are in an 15km radius of the 
> > > center
> > > of the map (user has to press a button for this) and everything works 
> > > fine.
> > > I would prefer to show all items at start, though. That is possible, but
> > > moving the map around becomes very slow (guess I need that new LG phone
> > > after all :-).
>
> > > I extend ItemizedOverlay and the problem seems to be in
>
> > > public void draw(Canvas canvas, MapView mapView, boolean shadow) {
> > > if (canvas != null && mapView != null) {
> > > super.draw(canvas, mapView, false);
>
> > > }
> > > }
>
> > > if I comment out the call to super, the moving of the map is smooth (but 
> > > of
> > > course nothing is displayed).
>
> > > Any hints?
> > > Thanks,
> > > Stephan
>
> > > --
> > > Interessiert an Android?http://android-schweiz.blogspot.com/
> > > Whant to learn German?http://german-podcast.blogspot.com

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to