| | 688 | |
|---|
| | 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 | } |
|---|
| | 880 | |
|---|
| | 881 | /* -------------------------------------------------------------------- */ |
|---|
| | 882 | /* Prepare coverage origin and offset vectors. Take axis */ |
|---|
| | 883 | /* order into account if needed. */ |
|---|
| | 884 | /* -------------------------------------------------------------------- */ |
|---|
| | 885 | double adfOrigin[2]; |
|---|
| | 886 | double adfXVector[2]; |
|---|
| | 887 | double adfYVector[2]; |
|---|
| | 888 | |
|---|
| | 889 | adfOrigin[0] = adfGeoTransform[0] + adfGeoTransform[1] * 0.5 |
|---|
| | 890 | + adfGeoTransform[4] * 0.5; |
|---|
| | 891 | adfOrigin[1] = adfGeoTransform[3] + adfGeoTransform[2] * 0.5 |
|---|
| | 892 | + adfGeoTransform[5] * 0.5; |
|---|
| | 893 | adfXVector[0] = adfGeoTransform[1]; |
|---|
| | 894 | adfXVector[1] = adfGeoTransform[2]; |
|---|
| | 895 | |
|---|
| | 896 | adfYVector[0] = adfGeoTransform[4]; |
|---|
| | 897 | adfYVector[1] = adfGeoTransform[5]; |
|---|
| | 898 | |
|---|
| | 899 | if( bNeedAxisFlip |
|---|
| | 900 | && CSLTestBoolean( CPLGetConfigOption( "GDAL_IGNORE_AXIS_ORIENTATION", |
|---|
| | 901 | "FALSE" ) ) ) |
|---|
| | 902 | { |
|---|
| | 903 | bNeedAxisFlip = FALSE; |
|---|
| | 904 | CPLDebug( "GMLJP2", "Supressed axis flipping on write based on GDAL_IGNORE_AXIS_ORIENTATION." ); |
|---|
| | 905 | } |
|---|
| | 906 | |
|---|
| | 907 | if( bNeedAxisFlip ) |
|---|
| | 908 | { |
|---|
| | 909 | double dfTemp; |
|---|
| | 910 | |
|---|
| | 911 | CPLDebug( "GMLJP2", "Flipping GML coverage axis order." ); |
|---|
| | 912 | |
|---|
| | 913 | dfTemp = adfOrigin[0]; |
|---|
| | 914 | adfOrigin[0] = adfOrigin[1]; |
|---|
| | 915 | adfOrigin[1] = dfTemp; |
|---|
| | 916 | |
|---|
| | 917 | dfTemp = adfXVector[0]; |
|---|
| | 918 | adfXVector[0] = adfXVector[1]; |
|---|
| | 919 | adfXVector[1] = dfTemp; |
|---|
| | 920 | |
|---|
| | 921 | dfTemp = adfYVector[0]; |
|---|
| | 922 | adfYVector[0] = adfYVector[1]; |
|---|
| | 923 | adfYVector[1] = dfTemp; |
|---|
| | 924 | } |
|---|
| 883 | | nXSize-1, nYSize-1, szSRSName, |
|---|
| 884 | | adfGeoTransform[0] + adfGeoTransform[1] * 0.5 |
|---|
| 885 | | + adfGeoTransform[4] * 0.5, |
|---|
| 886 | | adfGeoTransform[3] + adfGeoTransform[2] * 0.5 |
|---|
| 887 | | + adfGeoTransform[5] * 0.5, |
|---|
| 888 | | szSRSName, |
|---|
| 889 | | adfGeoTransform[1], adfGeoTransform[2], |
|---|
| 890 | | szSRSName, |
|---|
| 891 | | adfGeoTransform[4], adfGeoTransform[5] ); |
|---|
| | 973 | nXSize-1, nYSize-1, szSRSName, adfOrigin[0], adfOrigin[1], |
|---|
| | 974 | szSRSName, adfXVector[0], adfXVector[1], |
|---|
| | 975 | szSRSName, adfYVector[0], adfYVector[1] ); |
|---|