| | 689 | /* -------------------------------------------------------------------- */ |
|---|
| | 690 | /* Do we need to flip the axes? */ |
|---|
| | 691 | /* -------------------------------------------------------------------- */ |
|---|
| | 692 | if( bNeedAxisFlip |
|---|
| | 693 | && CSLTestBoolean( CPLGetConfigOption( "GDAL_IGNORE_AXIS_ORIENTATION", |
|---|
| | 694 | "FALSE" ) ) ) |
|---|
| | 695 | { |
|---|
| | 696 | bNeedAxisFlip = FALSE; |
|---|
| | 697 | CPLDebug( "GMLJP2", "Supressed axis flipping based on GDAL_IGNORE_AXIS_ORIENTATION." ); |
|---|
| | 698 | } |
|---|
| | 699 | |
|---|
| | 700 | if( bNeedAxisFlip ) |
|---|
| | 701 | { |
|---|
| | 702 | double dfTemp; |
|---|
| | 703 | |
|---|
| | 704 | CPLDebug( "GMLJP2", |
|---|
| | 705 | "Flipping axis orientation in GMLJP2 coverage description." ); |
|---|
| | 706 | |
|---|
| | 707 | dfTemp = adfGeoTransform[0]; |
|---|
| | 708 | adfGeoTransform[0] = adfGeoTransform[3]; |
|---|
| | 709 | adfGeoTransform[3] = dfTemp; |
|---|
| | 710 | |
|---|
| | 711 | dfTemp = adfGeoTransform[1]; |
|---|
| | 712 | adfGeoTransform[1] = adfGeoTransform[4]; |
|---|
| | 713 | adfGeoTransform[4] = dfTemp; |
|---|
| | 714 | |
|---|
| | 715 | dfTemp = adfGeoTransform[2]; |
|---|
| | 716 | adfGeoTransform[2] = adfGeoTransform[5]; |
|---|
| | 717 | adfGeoTransform[5] = dfTemp; |
|---|
| | 718 | } |
|---|
| | 719 | |
|---|
| | 839 | |
|---|
| | 840 | /* -------------------------------------------------------------------- */ |
|---|
| | 841 | /* Prepare coverage origin and offset vectors. Take axis */ |
|---|
| | 842 | /* order into account if needed. */ |
|---|
| | 843 | /* -------------------------------------------------------------------- */ |
|---|
| | 844 | double adfOrigin[2]; |
|---|
| | 845 | double adfXVector[2]; |
|---|
| | 846 | double adfYVector[2]; |
|---|
| | 847 | |
|---|
| | 848 | adfOrigin[0] = adfGeoTransform[0] + adfGeoTransform[1] * 0.5 |
|---|
| | 849 | + adfGeoTransform[4] * 0.5; |
|---|
| | 850 | adfOrigin[1] = adfGeoTransform[3] + adfGeoTransform[2] * 0.5 |
|---|
| | 851 | + adfGeoTransform[5] * 0.5; |
|---|
| | 852 | adfXVector[0] = adfGeoTransform[1]; |
|---|
| | 853 | adfXVector[1] = adfGeoTransform[2]; |
|---|
| | 854 | |
|---|
| | 855 | adfYVector[0] = adfGeoTransform[4]; |
|---|
| | 856 | adfYVector[1] = adfGeoTransform[5]; |
|---|
| | 857 | |
|---|
| | 858 | if( bNeedAxisFlip |
|---|
| | 859 | && CSLTestBoolean( CPLGetConfigOption( "GDAL_IGNORE_AXIS_ORIENTATION", |
|---|
| | 860 | "FALSE" ) ) ) |
|---|
| | 861 | { |
|---|
| | 862 | bNeedAxisFlip = FALSE; |
|---|
| | 863 | CPLDebug( "GMLJP2", "Supressed axis flipping on write based on GDAL_IGNORE_AXIS_ORIENTATION." ); |
|---|
| | 864 | } |
|---|
| | 865 | |
|---|
| | 866 | if( bNeedAxisFlip ) |
|---|
| | 867 | { |
|---|
| | 868 | double dfTemp; |
|---|
| | 869 | |
|---|
| | 870 | CPLDebug( "GMLJP2", "Flipping GML coverage axis order." ); |
|---|
| | 871 | |
|---|
| | 872 | dfTemp = adfOrigin[0]; |
|---|
| | 873 | adfOrigin[0] = adfOrigin[1]; |
|---|
| | 874 | adfOrigin[1] = dfTemp; |
|---|
| | 875 | |
|---|
| | 876 | dfTemp = adfXVector[0]; |
|---|
| | 877 | adfXVector[0] = adfXVector[1]; |
|---|
| | 878 | adfXVector[1] = dfTemp; |
|---|
| | 879 | |
|---|
| | 880 | dfTemp = adfYVector[0]; |
|---|
| | 881 | adfYVector[0] = adfYVector[1]; |
|---|
| | 882 | adfYVector[1] = dfTemp; |
|---|
| | 883 | } |
|---|
| 842 | | nXSize-1, nYSize-1, szSRSName, |
|---|
| 843 | | adfGeoTransform[0] + adfGeoTransform[1] * 0.5 |
|---|
| 844 | | + adfGeoTransform[4] * 0.5, |
|---|
| 845 | | adfGeoTransform[3] + adfGeoTransform[2] * 0.5 |
|---|
| 846 | | + adfGeoTransform[5] * 0.5, |
|---|
| 847 | | szSRSName, |
|---|
| 848 | | adfGeoTransform[1], adfGeoTransform[2], |
|---|
| 849 | | szSRSName, |
|---|
| 850 | | adfGeoTransform[4], adfGeoTransform[5] ); |
|---|
| | 932 | nXSize-1, nYSize-1, szSRSName, adfOrigin[0], adfOrigin[1], |
|---|
| | 933 | szSRSName, adfXVector[0], adfXVector[1], |
|---|
| | 934 | szSRSName, adfYVector[0], adfYVector[1] ); |
|---|