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

