Revision 29969 trunk/libraries/libJCRS/src/org/gvsig/crs/Crs.java

View differences:

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