Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

We're using spatialite-android and Nutiteq to render Archaeological datasets. One of our sample data sets has 7000 polygons that turn into 400,000 objects in our renderer.

Is there a common GIS method that deals with this problem? Unfortunately, our team hasn't done much GIS development and we don't know the right question to ask.

share|improve this question
    
How do 7000 polygons change into 400,000? –  ujjwalesri Jan 21 '13 at 5:17
    
That's an excellent question that we haven't figured out yet. I suspect that every node and edge of the polygons becomes its own object. –  Brian Ballsun-Stanton Jan 21 '13 at 6:54
1  
What source dataset you using? Would it be possible to share a very small subset of your data (maybe 50 records)? –  ujjwalesri Jan 21 '13 at 6:58
    
Are all polygons on the screen at once? Can you hide them above a certain zoom level? –  BradHards Jan 21 '13 at 8:31
1  
@ujjwalesri because Nutiteq renders each edge and vertex with at least 1 individual object. They're "working on it." –  Brian Ballsun-Stanton Jan 24 '13 at 6:43
show 1 more comment

2 Answers

I would conjecture that 7000 turns into 400k most likely because they are multipolygons. Think about the state of Hawaii as a single record with geometry. It has one geometry field, but there maybe dozens of polygons representing the islands within that one geometry field. I imagine archaeological data could have lots of small polygons.

It is a common problem to have too many geometries (or too complicated) to display quickly.

There are lots of ways to attack this problem --

  • Services - create a map service from the data. It should have auto generalization. Be sure to set scale dependency to only show features when you need. You can create tiled map service -- for very fast display, but space and lack of feature attributes are trade off. Also, hybrid solutions of tiled and dynamic feature services.
  • Client-side - when making individual graphics, you can display multiple features as a single cluster graphic at zoomed out levels. Google maps used to have this problem of bogging down when adding lots of individual graphics to browser -- clustering helps.
  • Data - Spatialite and most spatial database or apps that access spatial data have functions to simplify (generalize) geometry. Spatialite has Simplify, SimplifyPreserveTopology. Don't know for sure but SimplifyPreserveTopology probably makes sure that no geometries disappear all together. What the alogorithms do roughly -- is reduce vertices in the geometry (you can look up Douglas-Peucker) by a tolerance. You'll have to experiment with tolerance.

Some stuff to go on...

share|improve this answer
add comment

Rendering so many polygons on the map would be highly Memory Consuming, and I am not even sure if an Android phone can load so many polygons at once.

Are these features edited often? Do you require offline access? You could look into creating a WMS service with your data, and loading that as a layer in Nutiteq. Information on how to load a WMS service is given on this page: Different map sources

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.