Hi Ben,
I am working on the clustering and hope that I could get some ideas on the refresh map.
Currently my map view has 3 overlay
- Base overlay where store the map
- Marker overlay where store all the marker
- Drawing overlay where store all drawing from user
In Marker overlay, there are 3 layer
- For all PointStyle feature, that include cluster point
- For all AreaStyle feature
- For all LineStyle feature
I am now hitting Collection was modified error, probably causing by frequently updating the map.
My question is when should I update the map to reload the features? It has to reload since the cluster points will contains different numbers of children in different zoom level.
Below are the captured log when the error happens
[0:] ThinkGeo Message - 15:19:30.3868405: TileOverlay Draw Start
[0:] ThinkGeo Message - 15:19:30.4134965: TileView 68: 0-0-0 Draw Start
[0:] ThinkGeo Message - 15:19:30.4581910: Animation Start
[0:] ThinkGeo Message - 15:19:30.4966393: Tile 68: 0-0-0 SetImageAsync Start
[0:] ThinkGeo Message - 15:19:30.6082029: TileView 68: 0-0-0 Drawn End
[0:] ThinkGeo Message - 15:19:30.6407391: Single Tile Post Start
[0:] ThinkGeo Message - 15:19:30.6651089: TileView 68: 0-0-0 Post Start
[0:] ThinkGeo Message - 15:19:30.6936471: TileView 68: 0-0-0 Post End
[0:] ThinkGeo Message - 15:19:30.7262708: Animation Completed
[0:] ThinkGeo Message - 15:19:30.7750715: Draw Start
[0:] ThinkGeo Message - 15:19:30.8166265: TileOverlay Draw Start
[0:] ThinkGeo Message - 15:19:30.8305522: TileView 69: 0-0-0 Draw Start
[0:] ThinkGeo Message - 15:19:30.8879045: TileView 69: 0-0-0 Draw Canceled
[0:] ThinkGeo Message - 15:19:30.9180396: TileOverlay Draw Canceled
[0:] ThinkGeo Message - 15:19:30.9458411: Single Tile Post End
[0:] ThinkGeo Message - 15:19:30.9684162: TileOverlay Draw End
[0:] ThinkGeo Message - 15:19:30.9859835: TileOverlay Draw Start
[0:] ThinkGeo Message - 15:19:31.0044164: TileView 70: 0-0-0 Draw Start
[0:] ThinkGeo Message - 15:19:31.0333529: Draw Start
[0:] ThinkGeo Message - 15:19:31.0555145: TileOverlay Draw Start
[0:] ThinkGeo Message - 15:19:31.0779877: TileView 71: 0-0-0 Draw Start
[0:] ThinkGeo Message - 15:19:31.1486210: Tile 70: 0-0-0 SetImageAsync Start
[EGL_emulation] app_time_stats: avg=4.50ms min=1.23ms max=13.08ms count=31
System.InvalidOperationException: 'Collection was modified; enumeration operation may not execute.'v
[0:] ThinkGeo Message - 11:21:59.4341655: Animation Start
[tarn.android] Explicit concurrent mark compact GC freed 276KB AllocSpace bytes, 4(2256KB) LOS objects, 49% free, 13MB/27MB, paused 163us,2.797ms total 21.804ms
[0:] ThinkGeo Message - 11:21:59.6343927: Animation Completed
[0:] ThinkGeo Message - 11:21:59.6707048: Draw Start
[0:] ThinkGeo Message - 11:21:59.7026321: TileOverlay Draw Start
[0:] ThinkGeo Message - 11:21:59.7350229: TileView 18: 0-0-0 Draw Start
[0:] ThinkGeo Message - 11:21:59.7768920: Tile 18: 0-0-0 SetImageAsync Start
[0:] ThinkGeo Message - 11:21:59.8581408: TileView 18: 0-0-0 Drawn End
[0:] ThinkGeo Message - 11:21:59.8903703: Single Tile Post Start
[0:] ThinkGeo Message - 11:21:59.9270476: TileView 18: 0-0-0 Post Start
[0:] ThinkGeo Message - 11:21:59.9631924: TileView 18: 0-0-0 Post End
[0:] ThinkGeo Message - 11:22:00.0223977: Single Tile Post End
[EGL_emulation] app_time_stats: avg=17.23ms min=13.05ms max=36.00ms count=59
[0:] ThinkGeo Message - 11:22:00.0634218: TileOverlay Draw End
[0:] ThinkGeo Message - 11:22:00.1056683: TileOverlay Draw Start
[0:] ThinkGeo Message - 11:22:00.1454603: TileView 19: 0-0-0 Draw Start
[0:] ThinkGeo Message - 11:22:00.1851550: Tile 19: 0-0-0 SetImageAsync Start
[0:] ThinkGeo Message - 11:22:00.2817092: TileView 19: 0-0-0 Drawn End
[0:] ThinkGeo Message - 11:22:00.3260326: Single Tile Post Start
[0:] ThinkGeo Message - 11:22:00.3655159: TileView 19: 0-0-0 Post Start
[0:] ThinkGeo Message - 11:22:00.4077970: TileView 19: 0-0-0 Post End
[0:] ThinkGeo Message - 11:22:00.4686346: Single Tile Post End
[0:] ThinkGeo Message - 11:22:00.5169648: TileOverlay Draw End
[0:] ThinkGeo Message - 11:22:00.5593404: TileOverlay Draw Start
[0:] ThinkGeo Message - 11:22:00.6036609: TileView 20: 0-0-0 Draw Start
[0:] ThinkGeo Message - 11:22:00.9175623: Tile 20: 0-0-0 SetImageAsync Start
[EGL_emulation] app_time_stats: avg=16.97ms min=14.32ms max=36.59ms count=60
[0:] ThinkGeo Message - 11:22:01.0076016: TileView 16: 0-0-0 Post Timeout after 3000 ms
[0:] ThinkGeo Message - 11:22:01.1665241: Single Tile Post End
[0:] ThinkGeo Message - 11:22:01.2103720: TileOverlay Draw End
[0:] ThinkGeo Message - 11:22:01.2527594: TileOverlay Draw Start
[0:] ThinkGeo Message - 11:22:01.2912847: TileView 21: 0-0-0 Draw Start
[0:] ThinkGeo Message - 11:22:01.5792794: Tile 21: 0-0-0 SetImageAsync Start
[tarn.android] Explicit concurrent mark compact GC freed 816KB AllocSpace bytes, 67(9612KB) LOS objects, 49% free, 12MB/25MB, paused 172us,3.155ms total 27.988ms
[tarn.android] Explicit concurrent mark compact GC freed 108KB AllocSpace bytes, 0(0B) LOS objects, 49% free, 12MB/25MB, paused 144us,3.505ms total 21.346ms
[0:] ThinkGeo Message - 11:22:01.7845062: TileView 20: 0-0-0 Drawn End
[0:] ThinkGeo Message - 11:22:01.8235510: Single Tile Post Start
[0:] ThinkGeo Message - 11:22:01.8619871: TileView 20: 0-0-0 Post Start
[0:] ThinkGeo Message - 11:22:01.9054937: TileView 20: 0-0-0 Post End
[0:] Current location result lat=-37.8084 Lon=144.973505
[0:] Adding current location to user location layer
[0:] ThinkGeo Message - 11:22:02.0503605: TileOverlay Draw Start
[EGL_emulation] app_time_stats: avg=16.63ms min=13.62ms max=18.73ms count=61
[0:] ThinkGeo Message - 11:22:02.1050265: TileView 22: 0-0-0 Draw Start
[0:] Current location result lat=-37.8084 Lon=144.973505
[0:] Adding current location to user location layer
[0:] 0d031cc2-fdab-428f-be12-24a0446ede3d complete
[0:] ThinkGeo Message - 11:22:02.3363356: Single Tile Post End
[0:] ThinkGeo Message - 11:22:02.3759755: TileOverlay Draw End
[0:] ThinkGeo Message - 11:22:02.4226263: Draw End
[Choreographer] Skipped 35 frames! The application may be doing too much work on its main thread.
[tarn.android] Explicit concurrent mark compact GC freed 284KB AllocSpace bytes, 0(0B) LOS objects, 49% free, 12MB/25MB, paused 205us,5.089ms total 23.284ms
[0:] ThinkGeo Message - 11:22:02.5003530: TileView 21: 0-0-0 Drawn End
[0:] ThinkGeo Message - 11:22:02.5709452: Single Tile Post Start
[0:] ThinkGeo Message - 11:22:02.6107090: TileView 21: 0-0-0 Post Start
[0:] ThinkGeo Message - 11:22:02.6509705: TileView 21: 0-0-0 Post End
[tarn.android] Explicit concurrent mark compact GC freed 128KB AllocSpace bytes, 0(0B) LOS objects, 49% free, 12MB/25MB, paused 188us,2.653ms total 19.626ms
System.InvalidOperationException: ‘Collection was modified; enumeration operation may not execute.’