48 |
import org.geotools.renderer.lite.LabelCache; |
import org.geotools.renderer.lite.LabelCache; |
49 |
import org.geotools.renderer.lite.RendererUtilities; |
import org.geotools.renderer.lite.RendererUtilities; |
50 |
import org.geotools.renderer.lite.StreamingRenderer; |
import org.geotools.renderer.lite.StreamingRenderer; |
51 |
|
import org.geotools.resources.image.ImageUtilities; |
52 |
import org.geotools.swing.JMapPane; |
import org.geotools.swing.JMapPane; |
53 |
import org.geotools.swing.event.MapMouseEvent; |
import org.geotools.swing.event.MapMouseEvent; |
54 |
import org.geotools.swing.event.MapPaneEvent; |
import org.geotools.swing.event.MapPaneEvent; |
612 |
final Map<Object, Object> rendererHints) { |
final Map<Object, Object> rendererHints) { |
613 |
super(true); |
super(true); |
614 |
|
|
615 |
|
// A default setting |
616 |
|
RenderingHints hintsJava2d = ImageUtilities.NN_INTERPOLATION_HINT; |
617 |
|
setJava2dHints(hintsJava2d); |
618 |
|
|
619 |
setRendererHints(rendererHints); |
setRendererHints(rendererHints); |
620 |
|
|
621 |
setOpaque(true); |
setOpaque(true); |
817 |
|
|
818 |
final Envelope maxAllowedExtend = getMaxExtend(); |
final Envelope maxAllowedExtend = getMaxExtend(); |
819 |
|
|
820 |
|
/* |
821 |
|
* If a maxAllowedExtend is set, we have to honour that... |
822 |
|
*/ |
823 |
|
Envelope lastCalculatedArea = null; |
824 |
while (maxAllowedExtend != null && !maxAllowedExtend.contains(newArea) |
while (maxAllowedExtend != null && !maxAllowedExtend.contains(newArea) |
825 |
&& newArea != null && !newArea.isNull() |
&& newArea != null && !newArea.isNull() |
826 |
&& !Double.isNaN(newArea.getMinX()) |
&& !Double.isNaN(newArea.getMinX()) |
827 |
&& !Double.isNaN(newArea.getMaxX()) |
&& !Double.isNaN(newArea.getMaxX()) |
828 |
&& !Double.isNaN(newArea.getMinY()) |
&& !Double.isNaN(newArea.getMinY()) |
829 |
&& !Double.isNaN(newArea.getMaxY())) { |
&& !Double.isNaN(newArea.getMaxY()) |
830 |
/* |
) // Due to Double precision problems, this may iterate for ever |
831 |
* If a maxExtend is set, we have to honour that... |
{ |
832 |
*/ |
|
833 |
|
if (newArea.equals(lastCalculatedArea)) |
834 |
|
break; |
835 |
|
// Check that we are not iterating for ever due to double precision rounding errors |
836 |
|
lastCalculatedArea = newArea; |
837 |
|
|
838 |
// Exceeds top? Move down and maybe cut |
// Exceeds top? Move down and maybe cut |
839 |
if (newArea.getMaxY() > maxAllowedExtend.getMaxY()) { |
if (newArea.getMaxY() > maxAllowedExtend.getMaxY()) { |
840 |
final double divY = newArea.getMaxY() |
final double divY = newArea.getMaxY() |
938 |
.getCoordinateReferenceSystem()), false); |
.getCoordinateReferenceSystem()), false); |
939 |
} |
} |
940 |
} |
} |
941 |
|
|
942 |
|
|
943 |
} |
} |
944 |
|
|
945 |
return new ReferencedEnvelope(newArea, env |
return new ReferencedEnvelope(newArea, env |
2250 |
SwingUtil.clearAround(finalG, painedArea, getVisibleRect(), |
SwingUtil.clearAround(finalG, painedArea, getVisibleRect(), |
2251 |
getMapBackgroundColor()); |
getMapBackgroundColor()); |
2252 |
|
|
2253 |
// addGadgets(finalG, false); |
addGadgets(finalG, false); |
2254 |
|
|
2255 |
finalG.dispose(); |
finalG.dispose(); |
2256 |
|
|