Revision 39492 branches/v2_0_0_prep/libraries/org.gvsig.symbology/org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/styling/AttrInTableLabelingStrategy.java
AttrInTableLabelingStrategy.java | ||
---|---|---|
7 | 7 |
import java.util.ArrayList; |
8 | 8 |
import java.util.List; |
9 | 9 |
|
10 |
import org.cresques.cts.ICoordTrans; |
|
11 |
import org.cresques.cts.IProjection; |
|
10 | 12 |
import org.slf4j.LoggerFactory; |
11 | 13 |
|
12 | 14 |
import org.gvsig.compat.print.PrintAttributes; |
... | ... | |
21 | 23 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
22 | 24 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
23 | 25 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
26 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
24 | 27 |
import org.gvsig.fmap.geom.primitive.Point; |
25 | 28 |
import org.gvsig.fmap.mapcontext.MapContext; |
26 | 29 |
import org.gvsig.fmap.mapcontext.ViewPort; |
... | ... | |
158 | 161 |
fields.add(getColorField()); |
159 | 162 |
} |
160 | 163 |
|
161 |
FeatureStore featureStore=layer.getFeatureStore(); |
|
164 |
FeatureStore featureStore = layer.getFeatureStore(); |
|
165 |
ICoordTrans ct = layer.getCoordTrans(); |
|
162 | 166 |
|
163 |
String geomName=featureStore.getDefaultFeatureType().getDefaultGeometryAttributeName();
|
|
167 |
String geomName = featureStore.getDefaultFeatureType().getDefaultGeometryAttributeName();
|
|
164 | 168 |
fields.add(geomName); |
165 | 169 |
|
166 |
FeatureQuery featureQuery=featureStore.createFeatureQuery(); |
|
170 |
if (viewPort.getAdjustedEnvelope().contains( |
|
171 |
layer.getFullEnvelope())) { |
|
172 |
/* |
|
173 |
* viewport contains layer completely |
|
174 |
*/ |
|
175 |
set = featureStore.getFeatureSet(); |
|
176 |
} else { |
|
177 |
/* |
|
178 |
* view port does not contain layer completely |
|
179 |
*/ |
|
180 |
IntersectsEnvelopeEvaluator iee = null; |
|
181 |
|
|
182 |
IProjection data_proj = null; |
|
183 |
Envelope env_in_store_crs = null; |
|
167 | 184 |
|
168 |
featureQuery.setAttributeNames((String[]) fields.toArray(new String[fields.size()])); |
|
169 |
// TODO no set filter y layer is contained totaly in viewPort |
|
170 |
IntersectsEnvelopeEvaluator iee = new IntersectsEnvelopeEvaluator( |
|
171 |
viewPort.getAdjustedEnvelope(), |
|
172 |
viewPort.getProjection(), |
|
173 |
featureStore.getDefaultFeatureType(), |
|
174 |
geomName); |
|
175 |
|
|
176 |
featureQuery.setFilter(iee); |
|
177 |
set = featureStore |
|
178 |
.getFeatureSet(featureQuery); |
|
179 |
|
|
185 |
if (ct == null) { |
|
186 |
env_in_store_crs = viewPort.getAdjustedEnvelope(); |
|
187 |
data_proj = viewPort.getProjection(); |
|
188 |
} else { |
|
189 |
env_in_store_crs = viewPort.getAdjustedEnvelope().convert( |
|
190 |
ct.getInverted()); |
|
191 |
data_proj = ct.getPOrig(); |
|
192 |
} |
|
180 | 193 |
|
194 |
iee = new IntersectsEnvelopeEvaluator( |
|
195 |
env_in_store_crs, |
|
196 |
data_proj, |
|
197 |
featureStore.getDefaultFeatureType(), |
|
198 |
geomName); |
|
199 |
FeatureQuery featureQuery = featureStore.createFeatureQuery(); |
|
200 |
featureQuery.setAttributeNames((String[]) fields.toArray(new String[fields.size()])); |
|
201 |
featureQuery.setFilter(iee); |
|
202 |
set = featureStore.getFeatureSet(featureQuery); |
|
203 |
} |
|
204 |
|
|
205 |
/* |
|
206 |
* 'set' now has the features that have to be labeled |
|
207 |
*/ |
|
181 | 208 |
iterator = set.fastIterator(); |
182 | 209 |
while(iterator.hasNext()){ |
183 | 210 |
if (cancel.isCanceled()){ |
... | ... | |
266 | 293 |
Geometry geom = feature.getDefaultGeometry(); |
267 | 294 |
sym.setText(feature.getString(fields.get(textPos))); |
268 | 295 |
sym.setRotation(rotation); |
296 |
|
|
297 |
if (ct != null) { |
|
298 |
/* |
|
299 |
* Reproject from store CRS to view CRS |
|
300 |
*/ |
|
301 |
geom = geom.cloneGeometry(); |
|
302 |
geom.reProject(ct); |
|
303 |
} |
|
269 | 304 |
|
270 | 305 |
Point p = createLabelPoint(geom); |
271 | 306 |
if( p != null ) { |
Also available in: Unified diff