Revision 12793 trunk/libraries/libRaster/src/org/gvsig/raster/dataset/RasterDataset.java
RasterDataset.java | ||
---|---|---|
560 | 560 |
} |
561 | 561 |
return p; |
562 | 562 |
} |
563 |
|
|
564 |
/** |
|
565 |
* Obtiene las coordenadas reales de las esquinas del raster. En un raster sin rotaci?n esta llamada no es |
|
566 |
* necesaria ya que es suficiente con el Extent pero cuando introducimos rotaci?n las coordenadas de las |
|
567 |
* 4 esquinas son diferentes entre si. |
|
568 |
* @return Point2D[] Lista de cuatro puntos que corresponden a las esquinas superior izquieda, superior derecha, |
|
569 |
* inferior derecha e inferior inquierda respectivamente. |
|
570 |
*/ |
|
571 |
public Point2D[] getCorners() { |
|
572 |
Point2D[] corner = new Point2D[4]; |
|
573 |
corner[0] = rasterToWorld(new Point2D.Double(0, 0)); |
|
574 |
corner[1] = rasterToWorld(new Point2D.Double(getWidth(), 0)); |
|
575 |
corner[2] = rasterToWorld(new Point2D.Double(getWidth(), getHeight())); |
|
576 |
corner[3] = rasterToWorld(new Point2D.Double(0, getHeight())); |
|
577 |
return corner; |
|
578 |
} |
|
579 | 563 |
|
580 | 564 |
/** |
581 |
* Obtiene el Extent correspondiente a los valores m?ximos y m?nimos del raster. Este es equivalente a getExtent |
|
582 |
* en un raster sin rotaci?n pero varia en un raster rotado. |
|
583 |
* @return Extent |
|
584 |
*/ |
|
585 |
public Extent getLimits() { |
|
586 |
Point2D[] corner = getCorners(); |
|
587 |
double minX1 = Math.min(corner[0].getX(), corner[1].getX()); |
|
588 |
double minX2 = Math.min(corner[2].getX(), corner[3].getX()); |
|
589 |
double minX = Math.min(minX1, minX2); |
|
590 |
|
|
591 |
double minY1 = Math.min(corner[0].getY(), corner[1].getY()); |
|
592 |
double minY2 = Math.min(corner[2].getY(), corner[3].getY()); |
|
593 |
double minY = Math.min(minY1, minY2); |
|
594 |
|
|
595 |
double maxX1 = Math.max(corner[0].getX(), corner[1].getX()); |
|
596 |
double maxX2 = Math.max(corner[2].getX(), corner[3].getX()); |
|
597 |
double maxX = Math.max(maxX1, maxX2); |
|
598 |
|
|
599 |
double maxY1 = Math.max(corner[0].getY(), corner[1].getY()); |
|
600 |
double maxY2 = Math.max(corner[2].getY(), corner[3].getY()); |
|
601 |
double maxY = Math.max(maxY1, maxY2); |
|
602 |
return new Extent(minX, maxY, maxX, minY); |
|
603 |
} |
|
604 |
|
|
605 |
/** |
|
606 | 565 |
* Calcula el extent en coordenadas del mundo real |
607 | 566 |
* @return Extent |
608 | 567 |
*/ |
609 | 568 |
public Extent getExtent() { |
610 | 569 |
return new Extent( rasterToWorld(new Point2D.Double(0, 0)), |
611 |
rasterToWorld(new Point2D.Double(getWidth(), getHeight()))); |
|
570 |
rasterToWorld(new Point2D.Double(getWidth(), getHeight())), |
|
571 |
rasterToWorld(new Point2D.Double(getWidth(), 0)), |
|
572 |
rasterToWorld(new Point2D.Double(0, getHeight()))); |
|
612 | 573 |
} |
613 | 574 |
|
614 | 575 |
/** |
Also available in: Unified diff