public class DistrictNetworkNodeUtils {
+ public static ThreadLocal<AffineTransform> sharedTransform = new ThreadLocal<AffineTransform>() {
+ protected AffineTransform initialValue() {
+ return new AffineTransform();
+ }
+ };
+
public static Rectangle2D calculateDrawnGeometry(Point2D p, Rectangle2D margin, Rectangle2D result, double scaleRecip) {
if (result == null)
result = new Rectangle2D.Double();
public static double calculateScaleRecip(AffineTransform tr) {
int zoomLevel = MapScalingTransform.zoomLevel(tr);
- double t = 1.0 / Math.sqrt(zoomLevel);
- return t;
+ return 1.0 / (getScale(tr) * Math.sqrt(zoomLevel));
+ }
+
+ static double getScale(AffineTransform tr) {
+ double scale;
+ scale = GeometryUtils.getScale(tr);
+ scale = Math.max(4096, scale); //Math.min(scale, 32768));
+ return scale;
}
}