389 |
public void layerAdded(final MapLayerListEvent event) { |
public void layerAdded(final MapLayerListEvent event) { |
390 |
event.getLayer().addMapLayerListener(localMapLayerListener); |
event.getLayer().addMapLayerListener(localMapLayerListener); |
391 |
|
|
392 |
localRenderer.setContext(getContext()); |
localRenderer.setContext(getMapContext()); |
393 |
requestStartRendering(); |
requestStartRendering(); |
394 |
|
|
395 |
} |
} |
396 |
|
|
397 |
@Override |
@Override |
398 |
public void layerChanged(final MapLayerListEvent event) { |
public void layerChanged(final MapLayerListEvent event) { |
399 |
localRenderer.setContext(getContext()); |
localRenderer.setContext(getMapContext()); |
400 |
requestStartRendering(); |
requestStartRendering(); |
401 |
} |
} |
402 |
|
|
403 |
@Override |
@Override |
404 |
public void layerMoved(final MapLayerListEvent event) { |
public void layerMoved(final MapLayerListEvent event) { |
405 |
localRenderer.setContext(getContext()); |
localRenderer.setContext(getMapContext()); |
406 |
requestStartRendering(); |
requestStartRendering(); |
407 |
} |
} |
408 |
|
|
410 |
public void layerRemoved(final MapLayerListEvent event) { |
public void layerRemoved(final MapLayerListEvent event) { |
411 |
if (event.getLayer() != null) |
if (event.getLayer() != null) |
412 |
event.getLayer().removeMapLayerListener(localMapLayerListener); |
event.getLayer().removeMapLayerListener(localMapLayerListener); |
413 |
localRenderer.setContext(getContext()); |
localRenderer.setContext(getMapContext()); |
414 |
requestStartRendering(); |
requestStartRendering(); |
415 |
} |
} |
416 |
}; |
}; |
423 |
|
|
424 |
@Override |
@Override |
425 |
public void layerChanged(final MapLayerEvent event) { |
public void layerChanged(final MapLayerEvent event) { |
426 |
localRenderer.setContext(getContext()); // betters for SLD changes?! |
localRenderer.setContext(getMapContext()); // betters for SLD changes?! |
427 |
requestStartRendering(); |
requestStartRendering(); |
428 |
} |
} |
429 |
|
|
762 |
} |
} |
763 |
|
|
764 |
final Envelope maxAllowedExtend = getMaxExtend(); |
final Envelope maxAllowedExtend = getMaxExtend(); |
765 |
|
|
766 |
while (maxAllowedExtend != null && !maxAllowedExtend.contains(newArea) |
while (maxAllowedExtend != null && !maxAllowedExtend.contains(newArea) |
767 |
&& newArea != null && !newArea.isNull() |
&& newArea != null && !newArea.isNull() |
768 |
&& !Double.isNaN(newArea.getMinX()) |
&& !Double.isNaN(newArea.getMinX()) |
936 |
removeMouseListener(zoomMapPaneMouseListener); |
removeMouseListener(zoomMapPaneMouseListener); |
937 |
|
|
938 |
if (localContext != null) |
if (localContext != null) |
939 |
getContext().clearLayerList(); |
getMapContext().clearLayerList(); |
940 |
if (bgContext != null) |
if (bgContext != null) |
941 |
getBgContext().clearLayerList(); |
getBgContext().clearLayerList(); |
942 |
|
|
1047 |
return bgImage; |
return bgImage; |
1048 |
} |
} |
1049 |
|
|
1050 |
public MapContext getContext() { |
public MapContext getMapContext() { |
1051 |
if (localContext == null) { |
if (localContext == null) { |
1052 |
setLocalContext(new DefaultMapContext()); |
setLocalContext(new DefaultMapContext()); |
1053 |
} |
} |
1157 |
|
|
1158 |
public Envelope getMaxExtend() { |
public Envelope getMaxExtend() { |
1159 |
if (maxExtend == null) { |
if (maxExtend == null) { |
1160 |
final ReferencedEnvelope layerBounds = GTUtil |
// Commented-out because it takes soo much time! |
1161 |
.getVisibleLayoutBounds(localContext); |
// |
1162 |
if (layerBounds == null) { |
// long start = System.currentTimeMillis(); |
1163 |
// TODO Last fallback could be the CRS valid area |
// final ReferencedEnvelope layerBounds = GTUtil |
1164 |
return null; |
// .getVisibleLayoutBounds(localContext); |
1165 |
} |
// |
1166 |
|
// LOGGER.info( (System.currentTimeMillis()-start)+"m to get maxExtend"); |
1167 |
// Kartenbereich um 10% vergroessern |
// |
1168 |
return JTSUtil.fixAspectRatio(getVisibleRect(), JTSUtil |
// if (layerBounds == null) { |
1169 |
.expandEnvelope(layerBounds, 0.1), true); |
// // TODO Last fallback could be the CRS valid area |
1170 |
|
// return null; |
1171 |
|
// } |
1172 |
|
// |
1173 |
|
// // Kartenbereich um 10% vergroessern |
1174 |
|
// return JTSUtil.fixAspectRatio(getVisibleRect(), JTSUtil |
1175 |
|
// .expandEnvelope(layerBounds, 0.1), true); |
1176 |
} |
} |
1177 |
return maxExtend; |
return maxExtend; |
1178 |
} |
} |
1287 |
*/ |
*/ |
1288 |
public boolean isWellDefined() { |
public boolean isWellDefined() { |
1289 |
try { |
try { |
1290 |
if (getContext() == null) |
if (getMapContext() == null) |
1291 |
return false; |
return false; |
1292 |
if (getContext().getLayerCount() <= 0) |
if (getMapContext().getLayerCount() <= 0) |
1293 |
return false; |
return false; |
1294 |
if (getVisibleRect().getWidth() == 0) |
if (getVisibleRect().getWidth() == 0) |
1295 |
return false; |
return false; |
1625 |
*/ |
*/ |
1626 |
private void resetTransforms() { |
private void resetTransforms() { |
1627 |
ReferencedEnvelope refMapEnv = new ReferencedEnvelope(mapArea, |
ReferencedEnvelope refMapEnv = new ReferencedEnvelope(mapArea, |
1628 |
getContext().getCoordinateReferenceSystem()); |
getMapContext().getCoordinateReferenceSystem()); |
1629 |
|
|
1630 |
// System.out |
// System.out |
1631 |
// .println("paintArea in resetTeansofrms = " + getVisibleRect()); |
// .println("paintArea in resetTeansofrms = " + getVisibleRect()); |
1709 |
} |
} |
1710 |
|
|
1711 |
public boolean setMapArea(final Envelope newMapArea) { |
public boolean setMapArea(final Envelope newMapArea) { |
1712 |
return setMapArea(new ReferencedEnvelope(newMapArea, getContext() |
return setMapArea(new ReferencedEnvelope(newMapArea, getMapContext() |
1713 |
.getCoordinateReferenceSystem())); |
.getCoordinateReferenceSystem())); |
1714 |
} |
} |
1715 |
|
|
1972 |
// (Graphics2D) getBgImage().getGraphics(), createGTRenderer); |
// (Graphics2D) getBgImage().getGraphics(), createGTRenderer); |
1973 |
} |
} |
1974 |
|
|
1975 |
if (getContext() != null) { |
if (getMapContext() != null) { |
1976 |
// localExecuter = new RenderingExecutor(this, 150l); |
// localExecuter = new RenderingExecutor(this, 150l); |
1977 |
// LOGGER.debug("starting local renderer:"); |
// LOGGER.debug("starting local renderer:"); |
1978 |
|
|
2233 |
public void zoomTo( |
public void zoomTo( |
2234 |
final FeatureCollection<SimpleFeatureType, SimpleFeature> features) { |
final FeatureCollection<SimpleFeatureType, SimpleFeature> features) { |
2235 |
|
|
2236 |
final CoordinateReferenceSystem mapCRS = getContext() |
// if (!isWellDefined()) return; |
2237 |
|
|
2238 |
|
final CoordinateReferenceSystem mapCRS = getMapContext() |
2239 |
.getCoordinateReferenceSystem(); |
.getCoordinateReferenceSystem(); |
2240 |
final CoordinateReferenceSystem fCRS = features.getSchema() |
final CoordinateReferenceSystem fCRS = features.getSchema() |
2241 |
.getGeometryDescriptor().getCoordinateReferenceSystem(); |
.getGeometryDescriptor().getCoordinateReferenceSystem(); |
2242 |
|
|
2243 |
double width = mapArea.getWidth(); |
ReferencedEnvelope _mapArea; |
2244 |
double height = mapArea.getHeight(); |
if (mapArea == null) |
2245 |
|
_mapArea = features.getBounds(); |
2246 |
|
else _mapArea = getMapArea(); |
2247 |
|
double width = _mapArea.getWidth(); |
2248 |
|
double height = _mapArea.getHeight(); |
2249 |
final double ratio = height / width; |
final double ratio = height / width; |
2250 |
|
|
2251 |
if (features == null || features.size() == 0) { |
if (features == null || features.size() == 0) { |
2297 |
} else { |
} else { |
2298 |
final ReferencedEnvelope fBounds = features.getBounds(); |
final ReferencedEnvelope fBounds = features.getBounds(); |
2299 |
|
|
2300 |
Envelope bounds; |
ReferencedEnvelope bounds; |
2301 |
if (!mapCRS.equals(fCRS)) { |
if (!mapCRS.equals(fCRS)) { |
2302 |
bounds = JTSUtil.transformEnvelope(fBounds, fCRS, mapCRS); |
bounds = JTSUtil.transformEnvelope(fBounds, mapCRS); |
2303 |
} else { |
} else { |
2304 |
bounds = fBounds; |
bounds = fBounds; |
2305 |
} |
} |