/[schmitzm]/trunk/src/skrueger/geotools/XMapPane.java
ViewVC logotype

Diff of /trunk/src/skrueger/geotools/XMapPane.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 545 by alfonx, Sat Nov 21 18:22:36 2009 UTC revision 551 by alfonx, Mon Nov 23 15:47:04 2009 UTC
# Line 389  public class XMapPane extends JPanel { Line 389  public class XMapPane extends JPanel {
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    
# Line 410  public class XMapPane extends JPanel { Line 410  public class XMapPane extends JPanel {
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          };          };
# Line 423  public class XMapPane extends JPanel { Line 423  public class XMapPane extends JPanel {
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    
# Line 762  public class XMapPane extends JPanel { Line 762  public class XMapPane extends JPanel {
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())
# Line 935  public class XMapPane extends JPanel { Line 936  public class XMapPane extends JPanel {
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    
# Line 1046  public class XMapPane extends JPanel { Line 1047  public class XMapPane extends JPanel {
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                  }                  }
# Line 1156  public class XMapPane extends JPanel { Line 1157  public class XMapPane extends JPanel {
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          }          }
# Line 1280  public class XMapPane extends JPanel { Line 1287  public class XMapPane extends JPanel {
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;
# Line 1618  public class XMapPane extends JPanel { Line 1625  public class XMapPane extends JPanel {
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());
# Line 1702  public class XMapPane extends JPanel { Line 1709  public class XMapPane extends JPanel {
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    
# Line 1965  public class XMapPane extends JPanel { Line 1972  public class XMapPane extends JPanel {
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    
# Line 2226  public class XMapPane extends JPanel { Line 2233  public class XMapPane extends JPanel {
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) {
# Line 2284  public class XMapPane extends JPanel { Line 2297  public class XMapPane extends JPanel {
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                          }                          }

Legend:
Removed from v.545  
changed lines
  Added in v.551

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26