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

