Statistics
| Revision:

root / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / layers / SpatialCache.java @ 8011

History | View | Annotate | Download (1.39 KB)

1 5223 fjp
package com.iver.cit.gvsig.fmap.layers;
2
3
import java.awt.geom.Rectangle2D;
4
5
import com.iver.cit.gvsig.fmap.core.IGeometry;
6
import com.iver.cit.gvsig.fmap.core.v02.FConverter;
7
import com.vividsolutions.jts.geom.Envelope;
8
import com.vividsolutions.jts.index.ItemVisitor;
9
import com.vividsolutions.jts.index.quadtree.Quadtree;
10
11 5813 fjp
public class SpatialCache  {
12 5223 fjp
        int maxFeatures = 1000; // Por defecto, pero se puede cambiar
13 5576 fjp
        int fastNumTotalRegs=0;
14 5813 fjp
        Quadtree quadTree = new Quadtree();
15 5223 fjp
16
        public int getMaxFeatures() {
17
                return maxFeatures;
18
        }
19
20
        public void setMaxFeatures(int maxFeatures) {
21
                this.maxFeatures = maxFeatures;
22
        }
23
24
        /**
25
         * M?todo de conveniencia
26
         *
27
         * @param r
28
         * @param igeometry
29
         */
30 5226 fjp
        public synchronized void insert(Rectangle2D bounds, IGeometry geom) {
31 5223 fjp
                Envelope env = FConverter.convertRectangle2DtoEnvelope(bounds);
32
                this.insert(env, geom);
33 5576 fjp
                fastNumTotalRegs++;
34 5223 fjp
        }
35
36
        public synchronized void query(Envelope searchEnv, ItemVisitor visitor)
37
        {
38 5813 fjp
                quadTree.query(searchEnv, visitor);
39 5223 fjp
        }
40
41 5576 fjp
        public void insert(Envelope itemEnv, Object item) {
42 5813 fjp
                quadTree.insert(itemEnv, item);
43 5576 fjp
                fastNumTotalRegs++;
44
        }
45 5223 fjp
46 5576 fjp
        public boolean remove(Envelope itemEnv, Object item) {
47 5813 fjp
                boolean resul = quadTree.remove(itemEnv, item);
48 5576 fjp
                if (resul)
49
                        fastNumTotalRegs--;
50
                return resul;
51
        }
52
53
        public int size() {
54
                return fastNumTotalRegs;
55
        }
56
57 5813 fjp
        public void clearAll() {
58
                quadTree = new Quadtree();
59
                fastNumTotalRegs = 0;
60
        }
61 5576 fjp
62 5813 fjp
63 5223 fjp
}