Revision 3564 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/toolListeners/InfoListener.java

View differences:

InfoListener.java
68 68
import com.iver.cit.gvsig.fmap.MapControl;
69 69
import com.iver.cit.gvsig.fmap.ViewPort;
70 70
import com.iver.cit.gvsig.fmap.drivers.DriverIOException;
71
import com.iver.cit.gvsig.fmap.layers.FBitSet;
71 72
import com.iver.cit.gvsig.fmap.layers.FLayer;
73
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
72 74
import com.iver.cit.gvsig.fmap.layers.RasterOperations;
73 75
import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData;
74 76
import com.iver.cit.gvsig.fmap.layers.layerOperations.InfoByPoint;
......
149 151
		for (int i = 0; i < sel.length; i++) {
150 152
			FLayer laCapa = (FLayer) sel[i];
151 153

  
152
			if ((laCapa instanceof VectorialData)
153
					&& (laCapa instanceof AlphanumericData)) {
154
				QueryByPointVisitor visitor = new QueryByPointVisitor();
155
				visitor.setLayer(laCapa);
156
				visitor.setQueriedPoint(pReal);
157
				visitor.setTolerance(mapCtrl.getMapContext().getViewPort()
158
						.toMapDistance(3));
159
				try {
160
					((VectorialData) laCapa).process(visitor);
161
				} catch (DriverException e) {
162
					throw new BehaviorException("No se pudo procesar la capa",
163
							e);
164
				} catch (VisitException e) {
165
					throw new RuntimeException(e);
166
				}
154
            // Estos cambios son para que si existe un ?ndice espacial
155
            // se aproveche. Mucho m?s r?pidas las consultas.
156
			/* if ((laCapa instanceof VectorialData)
157
					&& (laCapa instanceof AlphanumericData)) { */
158
            if (laCapa instanceof FLyrVect)
159
            {
160
                    // Tolerancia de 3 pixels
161
                FLyrVect lyrVect = (FLyrVect) laCapa;
162
                double tol = mapCtrl.getViewPort().toMapDistance(3);
167 163

  
164
                FBitSet newBitSet;
165
                try {
166
                    newBitSet = lyrVect.queryByPoint(pReal, tol);
167
                    items[i] = new VectorialXMLItem(newBitSet, laCapa);
168
                    numLayersInfoable++;
169
                } catch (DriverException e) {
170
                    // TODO Auto-generated catch block
171
                    e.printStackTrace();
172
                    throw new BehaviorException("Fallo al consultar " + lyrVect.getName());
173
                }
174
                
175
                /* else
176
                {
177
    				QueryByPointVisitor visitor = new QueryByPointVisitor();
178
    				visitor.setLayer(laCapa);
179
    				visitor.setQueriedPoint(pReal);
180
    				visitor.setTolerance(mapCtrl.getMapContext().getViewPort()
181
    						.toMapDistance(3));
182
    				try {
183
    					((VectorialData) laCapa).process(visitor);
184
    				} catch (DriverException e) {
185
    					throw new BehaviorException("No se pudo procesar la capa",
186
    							e);
187
    				} catch (VisitException e) {
188
    					throw new RuntimeException(e);
189
    				}
190
                } 
168 191
				items[i] = new VectorialXMLItem(visitor.getBitSet(), laCapa);
169
				numLayersInfoable++;
192
                */
170 193
			}
171 194
			// TODO: PROVISIONAL PARA LA CAPA WMS
172 195
			if (laCapa instanceof RasterOperations) {

Also available in: Unified diff