I am very new to GIS and I am diving into cartography and mapping because of an Android App that I am currently developing. I want to display environmental data, more precisely noise pollution data on a map in the App. But the data I received is quite complex and large and I am having trouble to properly simplify and export the data that it can easily be used with OpenStreetMap on mobiles.

I have several versions of the data, one older shapefile 23.5 MB, one newer, more accurate one with even 61.3 MB. When I export the files with QGis I get .kml of 66.4 MB and over 100 MB. I failed in simplifying geometry to reduce the file size since the size seems only to get smaller as the shapes stop looking too different from the original.

I heard of the concept to slice/intersect the shape, for example with shapefiles from district borders so the mobile device would only load that part of the large file when being in the respective district, with GPS on. I tried to do this with ArcGIS after having downloaded .kml of district borders, but this software seems too complex for me, unfortunately.

Is this also possibly be done with QGIS?

What is the best way to boil a large layer of data down so it can easily be used for an Android app? I guess these large polygonal shapes can be expressed in a way simpler way to still get the values for a certain location?!

The data, in this case a .kml of 66.4 MB imported via fusiontables onto Google Maps can be seen here: https://www.google.com/fusiontables/DataSource?snapid=S717313eWaJ

I hope some GIS expert has time to look at this and can guide me into the right direction.

Edit 1: Concerning tiling. I see that tiling works only for raster images. The essence of using the .shp for the is the actual data that lies behind it - the app needs to be able to sort the data, e.g. show only values >x . In order for the device to know on which location which value has been measured would tiling the shape only be a graphical solution?

  • Can you tile the data? maptiler.org
    – Mapperz
    Commented Oct 9, 2012 at 20:22
  • There are like 24k records... Android will only be fast with less data and little less accuracy. Or tile it...
    – Styp
    Commented Oct 9, 2012 at 20:31
  • Does tiling work in QGIS? And both on .kml and .shp files??
    – birgit
    Commented Oct 9, 2012 at 20:41
  • for tiling you need to have your own server (or just use osm servers) and use that as the tile server.
    – Mapperz
    Commented Oct 9, 2012 at 21:44
  • stackoverflow.com/questions/11079741/… QGIS can use this as a base/background map
    – Mapperz
    Commented Oct 9, 2012 at 21:45

2 Answers 2


You shouldn't load the shapefile in the application. These many records would slightly tax even a basic level desktop/laptop, and certainly there is no need to make your app on a phone do such heavy lifting.

What you need to do, is to have your own server (like GeoServer or MapServer) which hosts the data, and offers the data as a WMS service. Your app should consume this WMS service. If you don't want to build a complete WMS client, you can use OpenLayers or something like that in an HTML Control.

You have mentioned that you app should have the capability to sort & filter. This is definitely possible using filters. See this Document on How you can filter with GeoServer.

  • Thanks for this very useful tip. I tried importing the shape into Geoserver but get a blank result in the preview. I am afraid the data might be too large or I chose the wrong style (line, polygons...) - how can I prepare this file to be best used by Geoserver?
    – birgit
    Commented Oct 10, 2012 at 20:34
  • It is very difficult to guess what the problem is, but this document might be of help: docs.geoserver.org/stable/en/user/gettingstarted/… Commented Oct 11, 2012 at 3:24
  • This was the tutorial I did, indeed - it worked with the given example but not with my own data... :/ I guess it must be a size/complexity issue there...
    – birgit
    Commented Oct 11, 2012 at 9:17
  • Or there could be something wrong with the shapefile. Have you tried to open the shapefile and see if it is a valid shapefile? Commented Oct 11, 2012 at 9:26
  • I can open it with QGIS & ArcGIS. I had to manually add the CRS - the .kml export as in the above post worked well after projecting it to WGS84...
    – birgit
    Commented Oct 11, 2012 at 9:48

as the DBMS sqlite is part of the android universe, it may be possible to use the spatial extension spatialite, which has it's own spatial index to query vector data in a given extent. Possibly a starting point: How to build Android spatialite?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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