Revision 29969 trunk/libraries/libJCRS/src/org/gvsig/crs/Crs.java
Crs.java | ||
---|---|---|
587 | 587 |
*/ |
588 | 588 |
public double getScale(double minX, double maxX, double width, double dpi) { |
589 | 589 |
double scale = 0D; |
590 |
if (!isProjected()) { // Es geogr?fico; calcula la escala. |
|
591 |
scale = ((maxX - minX) * // grados |
|
592 |
|
|
593 |
// 1852.0 metros x minuto de meridiano |
|
594 |
(dpi / 2.54 * 100.0 * 1852.0 * 60.0)) / // px / metro |
|
595 |
width; // pixels |
|
596 |
} |
|
597 |
else{ |
|
590 |
//Esto ahora se hace fuera |
|
591 |
// if (!isProjected()) { // Es geogr?fico; calcula la escala. |
|
592 |
// scale = ((maxX - minX) * // grados |
|
593 |
// |
|
594 |
// // 1852.0 metros x minuto de meridiano |
|
595 |
// (dpi / 2.54 * 100.0 * 1852.0 * 60.0)) / // px / metro |
|
596 |
// width; // pixels |
|
597 |
// } |
|
598 |
// else{ |
|
598 | 599 |
scale = ((maxX - minX) * // metros |
599 | 600 |
(dpi / 2.54 * 100.0)) / // px / metro |
600 | 601 |
width; // pixels |
601 |
} |
|
602 |
// }
|
|
602 | 603 |
return scale; |
603 | 604 |
} |
604 | 605 |
|
... | ... | |
666 | 667 |
double h =0; |
667 | 668 |
double wExtent =0; |
668 | 669 |
double hExtent =0; |
669 |
if (isProjected()) { |
|
670 |
// if (isProjected()) {
|
|
670 | 671 |
w = ((wImage / dpi) * 2.54); |
671 | 672 |
h = ((hImage / dpi) * 2.54); |
672 |
wExtent =w * scale*distanceUnits/ mapUnits;
|
|
673 |
hExtent =h * scale*distanceUnits/ mapUnits;
|
|
673 |
wExtent =w * scale / mapUnits;
|
|
674 |
hExtent =h * scale / mapUnits;
|
|
674 | 675 |
|
675 |
}else { |
|
676 |
w = ((wImage / dpi) * 2.54); |
|
677 |
h = ((hImage / dpi) * 2.54); |
|
678 |
wExtent =(w*scale*distanceUnits)/ (mapUnits*1852.0*60.0); |
|
679 |
hExtent =(h*scale*distanceUnits)/ (mapUnits*1852.0*60.0); |
|
680 |
} |
|
676 |
//En las no proyectadas, ahora viene el calculo hecho |
|
677 |
//al haber incluido los grados en el array DISTANCETRANS2METER del MapContext |
|
678 |
// }else { |
|
679 |
// w = ((wImage / dpi) * 2.54); |
|
680 |
// h = ((hImage / dpi) * 2.54); |
|
681 |
// wExtent =(w*scale*distanceUnits)/ (mapUnits*1852.0*60.0); |
|
682 |
// hExtent =(h*scale*distanceUnits)/ (mapUnits*1852.0*60.0); |
|
683 |
// } |
|
681 | 684 |
double xExtent = extent.getCenterX() - wExtent/2; |
682 | 685 |
double yExtent = extent.getCenterY() - hExtent/2; |
683 | 686 |
Rectangle2D rec=new Rectangle2D.Double(xExtent,yExtent,wExtent,hExtent); |
Also available in: Unified diff