svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.symbology / org.gvsig.symbology.lib / org.gvsig.symbology.lib.impl / src / main / java / org / gvsig / symbology / fmap / mapcontext / rendering / dynamiclegend / DefaultDynamicLabelingStrategy.java @ 44534
History | View | Annotate | Download (21.6 KB)
1 |
/*
|
---|---|
2 |
* To change this license header, choose License Headers in Project Properties.
|
3 |
* To change this template file, choose Tools | Templates
|
4 |
* and open the template in the editor.
|
5 |
*/
|
6 |
package org.gvsig.symbology.fmap.mapcontext.rendering.dynamiclegend; |
7 |
|
8 |
import java.awt.Color; |
9 |
import java.awt.Font; |
10 |
import java.awt.Graphics2D; |
11 |
import java.awt.image.BufferedImage; |
12 |
import java.util.ArrayList; |
13 |
import java.util.List; |
14 |
import org.cresques.cts.ICoordTrans; |
15 |
import org.cresques.cts.IProjection; |
16 |
import org.gvsig.compat.print.PrintAttributes; |
17 |
import org.gvsig.expressionevaluator.Expression; |
18 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
19 |
import org.gvsig.expressionevaluator.MutableSymbolTable; |
20 |
import org.gvsig.expressionevaluator.SymbolTable; |
21 |
import org.gvsig.fmap.dal.DALLocator; |
22 |
import org.gvsig.fmap.dal.exception.ReadException; |
23 |
import org.gvsig.fmap.dal.expressionevaluator.FeatureSymbolTable; |
24 |
import org.gvsig.fmap.dal.feature.Feature; |
25 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
26 |
import org.gvsig.fmap.dal.feature.FeatureSelection; |
27 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
28 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
29 |
import org.gvsig.fmap.geom.Geometry; |
30 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
31 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
32 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
33 |
import org.gvsig.fmap.geom.primitive.Envelope; |
34 |
import org.gvsig.fmap.geom.primitive.Point; |
35 |
import org.gvsig.fmap.mapcontext.MapContext; |
36 |
import org.gvsig.fmap.mapcontext.ViewPort; |
37 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
38 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
39 |
import org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory; |
40 |
import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelingMethod; |
41 |
import org.gvsig.fmap.mapcontext.rendering.legend.styling.IPlacementConstraints; |
42 |
import org.gvsig.fmap.mapcontext.rendering.legend.styling.IZoomConstraints; |
43 |
import org.gvsig.symbology.SymbologyLocator; |
44 |
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling.AttrInTableLabelingStrategy; |
45 |
import static org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling.AttrInTableLabelingStrategy.MIN_TEXT_SIZE; |
46 |
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.impl.CartographicSupportToolkit; |
47 |
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.text.impl.SimpleTextSymbol; |
48 |
import org.gvsig.tools.dispose.DisposableIterator; |
49 |
import org.gvsig.tools.evaluator.Evaluator; |
50 |
import org.gvsig.tools.exception.BaseException; |
51 |
import org.gvsig.tools.persistence.PersistentState; |
52 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
53 |
import org.gvsig.tools.task.Cancellable; |
54 |
import org.slf4j.Logger; |
55 |
import org.slf4j.LoggerFactory; |
56 |
|
57 |
/**
|
58 |
*
|
59 |
* @author osc
|
60 |
*/
|
61 |
public class DefaultDynamicLabelingStrategy implements DynamicLabelingStrategy { |
62 |
|
63 |
private Feature feature;
|
64 |
public String LROTATION = "LROTATION"; |
65 |
public String LTEXT = "LTEXT"; |
66 |
public String LHEIGHT = "LHEIGHT"; |
67 |
public String LCOLOR = "LCOLOR"; |
68 |
public String LFONT = "LFONT"; |
69 |
public String LFONTSTYLE = "LFONTS"; |
70 |
|
71 |
public static Expression expRotation = null; |
72 |
public static Expression expText = null; |
73 |
public static Expression expHeight = null; |
74 |
public static Expression expColor = null; |
75 |
public static Expression expFont = null; |
76 |
public static Expression expFontStyle = null; |
77 |
public static Expression expUnit; |
78 |
public static Expression expReferenceSystem; |
79 |
|
80 |
private MutableSymbolTable symbolTable = null; |
81 |
private FeatureSymbolTable featureSymbolTable = null; |
82 |
private FLyrVect layer;
|
83 |
private List<Geometry> drawnGeometryLabels; |
84 |
private boolean printMode = false; |
85 |
private IZoomConstraints zoom = null; |
86 |
private static final Logger logger = LoggerFactory.getLogger(AttrInTableLabelingStrategy.class); |
87 |
private int referenceSystem; |
88 |
private String textField; |
89 |
|
90 |
|
91 |
public SymbolTable getFeatureSymbolTable() {
|
92 |
if (symbolTable == null) { |
93 |
MutableSymbolTable s = ExpressionEvaluatorLocator.getManager().createSymbolTable(); |
94 |
featureSymbolTable = DALLocator.getDataManager().createFeatureSymbolTable(); |
95 |
s.addSymbolTable(featureSymbolTable); |
96 |
if (feature!=null) { |
97 |
featureSymbolTable.setFeature(feature); |
98 |
} |
99 |
symbolTable = s; |
100 |
} |
101 |
return symbolTable;
|
102 |
|
103 |
} |
104 |
|
105 |
// private Expression getExpressionFromString(String value) {
|
106 |
// Expression expression = ExpressionEvaluatorLocator.getManager().createExpression();
|
107 |
// expression.setPhrase(value);
|
108 |
// return expression;
|
109 |
// }
|
110 |
private Object getValueFromExpression(Expression exp) { |
111 |
if (exp == null) { |
112 |
return null; |
113 |
} |
114 |
Object value = exp.execute(getFeatureSymbolTable());
|
115 |
return value;
|
116 |
} |
117 |
|
118 |
public Object getComputedValue(String field) { |
119 |
Object value;
|
120 |
value = feature.get(field); |
121 |
|
122 |
return value;
|
123 |
} |
124 |
|
125 |
@Override
|
126 |
public Expression getRotation() { |
127 |
return expRotation;
|
128 |
} |
129 |
|
130 |
@Override
|
131 |
public int getComputedRotation() { |
132 |
Integer value = (Integer) getValueFromExpression(getRotation()); |
133 |
return value;
|
134 |
} |
135 |
|
136 |
@Override
|
137 |
public Expression getText() { |
138 |
return expText;
|
139 |
} |
140 |
|
141 |
@Override
|
142 |
public String getComputedText() { |
143 |
String value = (String) getValueFromExpression(getText()); |
144 |
return value;
|
145 |
} |
146 |
|
147 |
@Override
|
148 |
public Expression getHeight() { |
149 |
return expHeight;
|
150 |
} |
151 |
|
152 |
@Override
|
153 |
public int getComputedHeight() { |
154 |
int value = (int) getValueFromExpression(getHeight()); |
155 |
return value;
|
156 |
} |
157 |
|
158 |
@Override
|
159 |
public Expression getColor() { |
160 |
return expColor;
|
161 |
} |
162 |
|
163 |
@Override
|
164 |
public Color getComputedColor() { |
165 |
int rgbcolor = (int) getColor().execute(getFeatureSymbolTable()); |
166 |
Color color = new Color(rgbcolor, true); |
167 |
return color;
|
168 |
} |
169 |
|
170 |
@Override
|
171 |
public Expression getFixedSize() { |
172 |
return expHeight;
|
173 |
} |
174 |
|
175 |
@Override
|
176 |
public double getComputedFixedSize() { |
177 |
double value = (double) getValueFromExpression(getFixedSize()); |
178 |
return value;
|
179 |
} |
180 |
|
181 |
@Override
|
182 |
public int getComputedUnit() { |
183 |
int value = (int) getValueFromExpression(getUnitExp()); |
184 |
return value;
|
185 |
} |
186 |
|
187 |
@Override
|
188 |
public void setText(Expression expression) { |
189 |
expText = expression; |
190 |
} |
191 |
|
192 |
@Override
|
193 |
public void setRotation(Expression expression) { |
194 |
expRotation = expression; |
195 |
} |
196 |
|
197 |
@Override
|
198 |
public void setHeight(Expression expression) { |
199 |
expHeight = expression; |
200 |
} |
201 |
|
202 |
@Override
|
203 |
public void setColor(Expression expression) { |
204 |
expColor = expression; |
205 |
} |
206 |
|
207 |
@Override
|
208 |
public void setUsesFixedSize(boolean b) { |
209 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
210 |
} |
211 |
|
212 |
@Override
|
213 |
public boolean usesFixedSize() { |
214 |
return false; |
215 |
} |
216 |
|
217 |
@Override
|
218 |
public void setFixedSize(double fixedSize) { |
219 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
220 |
} |
221 |
|
222 |
@Override
|
223 |
public void setUsesFixedColor(boolean b) { |
224 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
225 |
} |
226 |
|
227 |
@Override
|
228 |
public boolean usesFixedColor() { |
229 |
return true; |
230 |
} |
231 |
|
232 |
@Override
|
233 |
public Expression getFixedColor() { |
234 |
return expColor;
|
235 |
} |
236 |
|
237 |
@Override
|
238 |
public Color getComputedFixedColor() { |
239 |
int rgbcolor = (int) getFixedColor().execute(getFeatureSymbolTable()); |
240 |
Color color = new Color(rgbcolor, true); |
241 |
return color;
|
242 |
} |
243 |
|
244 |
@Override
|
245 |
public void setFixedColor(Color fixedColor) { |
246 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
247 |
} |
248 |
|
249 |
@Override
|
250 |
public Expression getColorFont() { |
251 |
return expColor;
|
252 |
} |
253 |
|
254 |
@Override
|
255 |
public Color getComputedColorFont() { |
256 |
int rgbcolor = (int) getColorFont().execute(getFeatureSymbolTable()); |
257 |
Color color = new Color(rgbcolor, true); |
258 |
return color;
|
259 |
} |
260 |
|
261 |
@Override
|
262 |
public void setColorFont(Color colorFont) { |
263 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
264 |
} |
265 |
|
266 |
@Override
|
267 |
public Expression getFont() { |
268 |
return expFont;
|
269 |
} |
270 |
|
271 |
@Override
|
272 |
public Font getComputedFont() { |
273 |
String value = (String) getFont().execute(getFeatureSymbolTable()); |
274 |
Font font = new Font(value, getComputedFontStyle(), getComputedHeight()); |
275 |
return font;
|
276 |
} |
277 |
|
278 |
@Override
|
279 |
public void setFont(Font selFont) { |
280 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
281 |
} |
282 |
|
283 |
@Override
|
284 |
public Expression getFontStyle() { |
285 |
return expFontStyle;
|
286 |
} |
287 |
|
288 |
@Override
|
289 |
public int getComputedFontStyle() { |
290 |
int value = (int) getFontStyle().execute(getFeatureSymbolTable()); |
291 |
return value;
|
292 |
} |
293 |
|
294 |
@Override
|
295 |
public void setFontStyle(Expression expression) { |
296 |
expFontStyle = expression; |
297 |
} |
298 |
|
299 |
public void setFeature(Feature f) { |
300 |
feature = f; |
301 |
if (featureSymbolTable==null) { |
302 |
getFeatureSymbolTable(); |
303 |
} |
304 |
featureSymbolTable.setFeature(f); |
305 |
} |
306 |
|
307 |
@Override
|
308 |
public ILabelingMethod getLabelingMethod() {
|
309 |
throw new UnsupportedOperationException("Not supported yet."); |
310 |
} |
311 |
|
312 |
@Override
|
313 |
public void setLabelingMethod(ILabelingMethod method) { |
314 |
throw new UnsupportedOperationException("Not supported yet."); |
315 |
} |
316 |
|
317 |
@Override
|
318 |
public IPlacementConstraints getPlacementConstraints() {
|
319 |
throw new UnsupportedOperationException("Not supported yet."); |
320 |
} |
321 |
|
322 |
@Override
|
323 |
public void setPlacementConstraints(IPlacementConstraints constraints) { |
324 |
throw new UnsupportedOperationException("Not supported yet."); |
325 |
} |
326 |
|
327 |
@Override
|
328 |
public IZoomConstraints getZoomConstraints() {
|
329 |
throw new UnsupportedOperationException("Not supported yet."); |
330 |
} |
331 |
|
332 |
@Override
|
333 |
public void setZoomConstraints(IZoomConstraints constraints) { |
334 |
throw new UnsupportedOperationException("Not supported yet."); |
335 |
} |
336 |
|
337 |
@Override
|
338 |
public Expression getUnitExp() { |
339 |
// String value = "-1";
|
340 |
// Expression exp = getExpressionFromString(value);
|
341 |
// return exp;
|
342 |
return expUnit;
|
343 |
} |
344 |
|
345 |
public Expression getReferenceSystemExp() { |
346 |
// String value = "0";
|
347 |
// Expression exp = getExpressionFromString(value);
|
348 |
return expReferenceSystem;
|
349 |
} |
350 |
|
351 |
private org.gvsig.fmap.geom.primitive.Point createLabelPoint(org.gvsig.fmap.geom.Geometry geom)
|
352 |
throws CreateGeometryException {
|
353 |
|
354 |
try {
|
355 |
return geom.centroid();
|
356 |
} catch (GeometryOperationNotSupportedException e) {
|
357 |
return null; |
358 |
} catch (GeometryOperationException e) {
|
359 |
return null; |
360 |
} |
361 |
} |
362 |
|
363 |
@Override
|
364 |
public void draw(BufferedImage mapImage, Graphics2D mapGraphics, double scale, ViewPort viewPort, Cancellable cancel, double dpi) throws ReadException { |
365 |
// double scale = getScale(viewPort, props);
|
366 |
PrintAttributes props = null;
|
367 |
if (layer == null) { |
368 |
return;
|
369 |
} |
370 |
|
371 |
if (zoom == null |
372 |
|| (zoom.isUserDefined() && (scale >= zoom.getMaxScale()) |
373 |
&& (scale <= zoom.getMinScale()))) { |
374 |
FeatureSet set = null;
|
375 |
DisposableIterator iterator = null;
|
376 |
try {
|
377 |
// AttrInTableLabelingStrategy.FilteredLogger logger = new AttrInTableLabelingStrategy.FilteredLogger(AttrInTableLabelingStrategy.logger, 10);
|
378 |
|
379 |
// limit the labeling to the visible extent
|
380 |
List<String> fields = new ArrayList<String>(); |
381 |
|
382 |
FeatureStore featureStore = layer.getFeatureStore(); |
383 |
ICoordTrans ct = layer.getCoordTrans(); |
384 |
|
385 |
String geomName = featureStore.getDefaultFeatureType().getDefaultGeometryAttributeName();
|
386 |
//TODO
|
387 |
fields.add(LCOLOR); |
388 |
fields.add(LFONT); |
389 |
fields.add(LFONTSTYLE); |
390 |
fields.add(LHEIGHT); |
391 |
fields.add(LROTATION); |
392 |
fields.add(LTEXT); |
393 |
fields.add(geomName); |
394 |
|
395 |
FeatureQuery featureQuery = layer.createFeatureQuery(); |
396 |
|
397 |
if (viewPort.getAdjustedEnvelope().contains(
|
398 |
layer.getFullEnvelope())) { |
399 |
/*
|
400 |
* viewport contains layer completely
|
401 |
*/
|
402 |
set = featureStore.getFeatureSet(featureQuery); |
403 |
} else {
|
404 |
/*
|
405 |
* view port does not contain layer completely
|
406 |
*/
|
407 |
Evaluator iee = null;
|
408 |
|
409 |
IProjection data_proj = null;
|
410 |
Envelope env_in_store_crs = null;
|
411 |
|
412 |
if (ct == null) { |
413 |
env_in_store_crs = viewPort.getAdjustedEnvelope(); |
414 |
data_proj = viewPort.getProjection(); |
415 |
} else {
|
416 |
env_in_store_crs = viewPort.getAdjustedEnvelope().convert( |
417 |
ct.getInverted()); |
418 |
data_proj = ct.getPOrig(); |
419 |
} |
420 |
iee = SpatialEvaluatorsFactory.getInstance().intersects( |
421 |
env_in_store_crs, |
422 |
data_proj, |
423 |
featureStore |
424 |
); |
425 |
featureQuery.setAttributeNames((String[]) fields.toArray(new String[fields.size()])); |
426 |
featureQuery.setFilter(iee); |
427 |
set = featureStore.getFeatureSet(featureQuery); |
428 |
} |
429 |
|
430 |
/*
|
431 |
* 'set' now has the features that have to be labeled
|
432 |
*/
|
433 |
FeatureSelection selection = this.layer.getFeatureStore().getFeatureSelection();
|
434 |
iterator = set.fastIterator(); |
435 |
while (iterator.hasNext()) {
|
436 |
if (cancel.isCanceled()) {
|
437 |
return;
|
438 |
} |
439 |
try {
|
440 |
Feature feat = (Feature) iterator.next(); |
441 |
Geometry geom = feat.getDefaultGeometry(); |
442 |
if (geom == null) { |
443 |
continue;
|
444 |
} |
445 |
|
446 |
double size = 0; |
447 |
Color color = null; |
448 |
this.setFeature(feat);
|
449 |
if ("".equals(getComputedText())) { |
450 |
continue;
|
451 |
} else if (getComputedText() == null) { |
452 |
continue;
|
453 |
} |
454 |
|
455 |
SimpleTextSymbol sym = new SimpleTextSymbol();
|
456 |
sym.setFont(getComputedFont()); |
457 |
sym.setUnit(getComputedUnit()); |
458 |
sym.setReferenceSystem(getComputedReferenceSystem()); |
459 |
if (this.usesFixedSize()) { //(useFixedSize) { |
460 |
// uses fixed size
|
461 |
size = getComputedFixedSize();// * fontScaleFactor;
|
462 |
} else if (true) { //(getComputedHeight() ) { |
463 |
// text size is defined in the table
|
464 |
size = getComputedHeight(); |
465 |
} else {
|
466 |
// otherwise will use the size in the symbol
|
467 |
size = sym.getFont().getSize(); |
468 |
} |
469 |
|
470 |
double the_dpi = viewPort.getDPI();
|
471 |
if (props != null) { |
472 |
int len = PrintAttributes.PRINT_QUALITY_DPI.length;
|
473 |
int priq = props.getPrintQuality();
|
474 |
if (priq < 0 || priq >= len) { |
475 |
throw new ReadException(featureStore.getName(), |
476 |
new Exception("Bad print quality value: " + priq)); |
477 |
} else {
|
478 |
the_dpi = PrintAttributes.PRINT_QUALITY_DPI[priq]; |
479 |
} |
480 |
} |
481 |
|
482 |
size = CartographicSupportToolkit.getCartographicLength(this,
|
483 |
size, |
484 |
viewPort, |
485 |
the_dpi); |
486 |
if (size <= MIN_TEXT_SIZE) {
|
487 |
// label is too small to be readable, will be skipped
|
488 |
// this speeds up the rendering in wider zooms
|
489 |
continue;
|
490 |
} |
491 |
|
492 |
/*
|
493 |
* ym.setFontSize(int) assumes dpi = 72
|
494 |
*/
|
495 |
double font_size = size * 72 / the_dpi; |
496 |
sym.setFontSize(font_size); |
497 |
|
498 |
// if (false) { //useFixedColor) {
|
499 |
// color = getComputedFixedColor();
|
500 |
// } else if (true) { //colorFieldName != null) {
|
501 |
// // text size is defined in the table
|
502 |
if (selection.isSelected(feat)) {
|
503 |
color = MapContext.getSelectionColor(); |
504 |
} else {
|
505 |
color = getComputedColorFont(); |
506 |
} |
507 |
|
508 |
sym.setTextColor(color); |
509 |
|
510 |
if (ct != null) { |
511 |
/*
|
512 |
* Reproject from store CRS to view CRS
|
513 |
*/
|
514 |
geom = geom.cloneGeometry(); |
515 |
geom.reProject(ct); |
516 |
} |
517 |
|
518 |
Point p = null; |
519 |
// text rotation is defined in the table
|
520 |
double rotation = -Math.toRadians(((Number) getComputedRotation()).doubleValue()); |
521 |
p = createLabelPoint(geom); |
522 |
|
523 |
sym.setText(getComputedText()); |
524 |
sym.setRotation(rotation); |
525 |
|
526 |
if (p != null) { |
527 |
if (props == null) { |
528 |
sym.draw(mapGraphics, viewPort.getAffineTransform(), p, feat, cancel); |
529 |
} else {
|
530 |
sym.print(mapGraphics, viewPort.getAffineTransform(), p, props); |
531 |
} |
532 |
} |
533 |
} catch (Exception ex) { |
534 |
logger.warn("", ex);
|
535 |
} |
536 |
} |
537 |
|
538 |
} catch (BaseException e) {
|
539 |
throw new ReadException( |
540 |
"Could not draw annotation in the layer.", e);
|
541 |
} finally {
|
542 |
if (iterator != null) { |
543 |
iterator.dispose(); |
544 |
} |
545 |
if (set != null) { |
546 |
set.dispose(); |
547 |
} |
548 |
|
549 |
} |
550 |
|
551 |
} |
552 |
|
553 |
} |
554 |
|
555 |
@Override
|
556 |
public void print(Graphics2D g, double scale, ViewPort viewPort, Cancellable cancel, PrintAttributes properties) throws ReadException { |
557 |
throw new UnsupportedOperationException("Not supported yet."); |
558 |
} |
559 |
|
560 |
@Override
|
561 |
public String[] getUsedFields() { |
562 |
throw new UnsupportedOperationException("Not supported yet."); |
563 |
} |
564 |
|
565 |
@Override
|
566 |
public void setLayer(FLayer flayer) { |
567 |
layer = (FLyrVect) flayer; |
568 |
} |
569 |
|
570 |
@Override
|
571 |
public boolean shouldDrawLabels(double scale) { |
572 |
return true; |
573 |
} |
574 |
|
575 |
@Override
|
576 |
public void saveToState(PersistentState state) throws PersistenceException { |
577 |
throw new UnsupportedOperationException("Not supported yet."); |
578 |
} |
579 |
|
580 |
@Override
|
581 |
public void loadFromState(PersistentState state) throws PersistenceException { |
582 |
throw new UnsupportedOperationException("Not supported yet."); |
583 |
} |
584 |
|
585 |
@Override
|
586 |
public void setUnit(int unitIndex) { |
587 |
throw new UnsupportedOperationException("Not supported yet."); |
588 |
} |
589 |
|
590 |
public void setUnit(Expression expression) { |
591 |
expUnit = expression; |
592 |
} |
593 |
|
594 |
@Override
|
595 |
public int getUnit() { |
596 |
return getComputedUnitExp();
|
597 |
} |
598 |
|
599 |
public int getComputedUnitExp() { |
600 |
int value = (int) getValueFromExpression(getUnitExp()); |
601 |
return value;
|
602 |
} |
603 |
|
604 |
|
605 |
public int getComputedReferenceSystem() { |
606 |
int value = (int) getValueFromExpression(getReferenceSystemExp()); |
607 |
return value;
|
608 |
} |
609 |
|
610 |
@Override
|
611 |
public int getReferenceSystem() { |
612 |
return getComputedReferenceSystem();
|
613 |
} |
614 |
|
615 |
@Override
|
616 |
public void setReferenceSystem(int referenceSystem) { |
617 |
// this.referenceSystem = referenceSystem;
|
618 |
} |
619 |
|
620 |
@Override
|
621 |
public double toCartographicSize(ViewPort viewPort, double dpi, Geometry geom) { |
622 |
throw new UnsupportedOperationException("Not supported yet."); |
623 |
} |
624 |
|
625 |
@Override
|
626 |
public void setCartographicSize(double cartographicSize, Geometry geom) { |
627 |
throw new UnsupportedOperationException("Not supported yet."); |
628 |
} |
629 |
|
630 |
@Override
|
631 |
public double getCartographicSize(ViewPort viewPort, double dpi, Geometry geom) { |
632 |
throw new UnsupportedOperationException("Not supported yet."); |
633 |
} |
634 |
|
635 |
@Override
|
636 |
public void setFont(Expression expression) { |
637 |
expFont = expression; |
638 |
} |
639 |
|
640 |
@Override
|
641 |
public void setFontStyle(int style) { |
642 |
|
643 |
} |
644 |
|
645 |
@Override
|
646 |
public void setReferenceSystem(Expression expression) { |
647 |
expReferenceSystem = expression; |
648 |
} |
649 |
|
650 |
} |