I work with radio cards that seem too fragmented for an efficient request. The response time is 20-40 seconds when I ask if one point is inside the multipolygon (I tested "inside" / "contains" / "overlap"). I am using PostGIS, with GeoDjango, to abstract requests.
The polygon column has a GiST index, and I tried VACUUM ANALYZE. I am using PostgreSQL 8.3.7. and Django 1.2.
Maps are spread over large geographic areas. They were originally created by a radar that supports topography, and therefore the cells of the cells / polygons are fragmented .
My goal is to request points inside multipolygons (i.e. houses that may or may not be covered by signals).
All radio communication cards consist of 100,000 and 300,000 peaks (total), with a huge number of polygons. Some maps have less than 10 polygons. From there, it jumps between 10,000 and 30,000 polygons. The ratio of polygons to vertices does not seem to affect the time it takes to complete the queries.
I use the projected coordinate system and use the same system for both home and radio networks. Qgis shows that the radio segments and maps are correctly placed in the area.
My test requests consist of only one house for one radio card. I tested queries such as "inside" / "contains" / "overlaps," and the results are the same:
The second second answer if the house is "far from" the radio card (I assume that this is because it is outside the frame that is automatically used in the request).
The response time is 20-40 seconds if the house / point is close or is on the radio map.
Do I have alternative ways to optimize queries, or should I somehow modify / simplify the source material? Any advice is appreciated.
source share