diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f05de55df..28ada567aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,8 +16,8 @@ include(CheckCSourceCompiles) set (MapServer_VERSION_MAJOR 7) -set (MapServer_VERSION_MINOR 5) -set (MapServer_VERSION_REVISION 0) +set (MapServer_VERSION_MINOR 4) +set (MapServer_VERSION_REVISION 1) set (MapServer_VERSION_SUFFIX "") set(TARGET_VERSION_MAJOR ${MapServer_VERSION_MAJOR}) @@ -1004,7 +1004,6 @@ status_optional_feature("V8 Javascript" "${USE_V8_MAPSCRIPT}") status_optional_feature("Apache Module (Experimental)" "${USE_APACHE_MODULE}") message(STATUS "") -message(STATUS "PROJECT_BINARY_DIR is set to ${PROJECT_BINARY_DIR}") message(STATUS "Will install files to ${CMAKE_INSTALL_PREFIX}") message(STATUS "Will install libraries to ${INSTALL_LIB_DIR}") diff --git a/HISTORY.TXT b/HISTORY.TXT index 349e3766ee..1795124773 100644 --- a/HISTORY.TXT +++ b/HISTORY.TXT @@ -12,6 +12,11 @@ For a complete change history, please see the Git log comments. For more details about recent point releases, please see the online changelog at: http://mapserver.org/development/changelog/ +7.4.1 release (2019-7-12) +------------------------- + +- No major changes, see detailed changelog for bug fixes + 7.4.0 release (2019-5-14) ------------------------- diff --git a/appveyor.yml b/appveyor.yml index c995a3db12..4b2d337c5c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -53,8 +53,7 @@ build_script: - cd %BUILD_FOLDER% - mkdir build - cd build - - set "PROJECT_BINARY_DIR=%BUILD_FOLDER%/build" - - cmake -G "%VS_FULL%" .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%SDK_PREFIX% -DFREETYPE_INCLUDE_DIR_freetype2=%SDK_INC%/freetype -DFREETYPE_INCLUDE_DIR_ft2build=%SDK_INC%/freetype -DFREETYPE_LIBRARY=%SDK_LIB%/freetype.lib -DZLIB_INCLUDE_DIR=%SDK_INC% -DZLIB_LIBRARY=%SDK_LIB%/zlib.lib -DPNG_PNG_INCLUDE_DIR=%SDK_INC% -DPNG_LIBRARY=%SDK_LIB%/libpng.lib -DPNG_LIBRARIES=%SDK_LIB%/libpng.lib -DJPEG_INCLUDE_DIR=%SDK_INC% -DJPEG_LIBRARY=%SDK_LIB%/libjpeg.lib -DWITH_PROJ=1 -DPROJ_INCLUDE_DIR=%SDK_INC% -DPROJ_LIBRARY=%SDK_LIB%/proj_i.lib -DFRIBIDI_INCLUDE_DIR=%SDK_INC% -DFRIBIDI_LIBRARY=%SDK_LIB%/fribidi.lib -DHARFBUZZ_INCLUDE_DIR=%SDK_INC%/harfbuzz -DHARFBUZZ_LIBRARY=%SDK_LIB%/harfbuzz.lib -DICONV_INCLUDE_DIR=%SDK_INC% -DICONV_LIBRARY=%SDK_LIB%/iconv.lib -DICONV_DLL=%SDK_BIN%/iconv.dll -DCAIRO_INCLUDE_DIR=%SDK_INC% -DCAIRO_LIBRARY=%SDK_LIB%/cairo.lib -DFCGI_INCLUDE_DIR=%SDK_INC% -DFCGI_LIBRARY=%SDK_LIB%/libfcgi.lib -DGEOS_INCLUDE_DIR=%SDK_INC% -DGEOS_LIBRARY=%SDK_LIB%/geos_c.lib -DPOSTGRESQL_INCLUDE_DIR=%SDK_INC% -DPOSTGRESQL_LIBRARY=%SDK_LIB%/libpqdll.lib -DGDAL_INCLUDE_DIR=%SDK_INC% -DGDAL_LIBRARY=%SDK_LIB%/gdal_i.lib -DLIBXML2_INCLUDE_DIR=%SDK_INC%/libxml -DLIBXML2_LIBRARIES=%SDK_LIB%/libxml2.lib -DGIF_INCLUDE_DIR=%SDK_INC% -DGIF_LIBRARY=%SDK_LIB%/giflib.lib -DWITH_CURL=1 -DCURL_INCLUDE_DIR=%SDK_INC% -DCURL_LIBRARY=%SDK_LIB%/libcurl_imp.lib -DMS_EXTERNAL_LIBS=wsock32.lib -DWITH_SOS=1 -DWITH_CLIENT_WFS=1 -DWITH_CLIENT_WMS=1 -DSVG_INCLUDE_DIR=%SDK_INC% -DSVG_LIBRARY=%SDK_LIB%/libsvg.lib -DSVGCAIRO_INCLUDE_DIR=%SDK_INC% -DSVGCAIRO_LIBRARY=%SDK_LIB%/libsvg-cairo.lib -DWITH_SVGCAIRO=1 -DREGEX_DIR=%REGEX_DIR% -DWITH_POINT_Z_M=1 -DWITH_KML=1 -DWITH_THREAD_SAFETY=1 -DSWIG_EXECUTABLE=%SWIG_EXECUTABLE% -DWITH_PYTHON=1 -DPYTHON_EXECUTABLE=%PYTHON_EXECUTABLE% -DWITH_CSHARP=1 -DPROTOBUFC_COMPILER=%SDK_BIN%/protoc.exe -DPROTOBUFC_LIBRARY=%SDK_LIB%/protobuf-c.lib -DPROTOBUFC_INCLUDE_DIR=%SDK_INC%/include/protobuf-c -DWITH_PROTOBUFC=1 + - cmake -G "%VS_FULL%" .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%SDK_PREFIX% -DFREETYPE_INCLUDE_DIR_freetype2=%SDK_INC%/freetype -DFREETYPE_INCLUDE_DIR_ft2build=%SDK_INC%/freetype -DFREETYPE_LIBRARY=%SDK_LIB%/freetype.lib -DZLIB_INCLUDE_DIR=%SDK_INC% -DZLIB_LIBRARY=%SDK_LIB%/zlib.lib -DPNG_PNG_INCLUDE_DIR=%SDK_INC% -DPNG_LIBRARY=%SDK_LIB%/libpng.lib -DPNG_LIBRARIES=%SDK_LIB%/libpng.lib -DJPEG_INCLUDE_DIR=%SDK_INC% -DJPEG_LIBRARY=%SDK_LIB%/libjpeg.lib -DWITH_PROJ=1 -DPROJ_INCLUDE_DIR=%SDK_INC% -DPROJ_LIBRARY=%SDK_LIB%/proj_i.lib -DFRIBIDI_INCLUDE_DIR=%SDK_INC% -DFRIBIDI_LIBRARY=%SDK_LIB%/fribidi.lib -DHARFBUZZ_INCLUDE_DIR=%SDK_INC%/harfbuzz -DHARFBUZZ_LIBRARY=%SDK_LIB%/harfbuzz.lib -DICONV_INCLUDE_DIR=%SDK_INC% -DICONV_LIBRARY=%SDK_LIB%/iconv.lib -DICONV_DLL=%SDK_BIN%/iconv.dll -DCAIRO_INCLUDE_DIR=%SDK_INC% -DCAIRO_LIBRARY=%SDK_LIB%/cairo.lib -DFCGI_INCLUDE_DIR=%SDK_INC% -DFCGI_LIBRARY=%SDK_LIB%/libfcgi.lib -DGEOS_INCLUDE_DIR=%SDK_INC% -DGEOS_LIBRARY=%SDK_LIB%/geos_c.lib -DPOSTGRESQL_INCLUDE_DIR=%SDK_INC% -DPOSTGRESQL_LIBRARY=%SDK_LIB%/libpqdll.lib -DGDAL_INCLUDE_DIR=%SDK_INC% -DGDAL_LIBRARY=%SDK_LIB%/gdal_i.lib -DLIBXML2_INCLUDE_DIR=%SDK_INC%/libxml -DLIBXML2_LIBRARIES=%SDK_LIB%/libxml2.lib -DGIF_INCLUDE_DIR=%SDK_INC% -DGIF_LIBRARY=%SDK_LIB%/giflib.lib -DWITH_CURL=1 -DCURL_INCLUDE_DIR=%SDK_INC% -DCURL_LIBRARY=%SDK_LIB%/libcurl_imp.lib -DMS_EXTERNAL_LIBS=wsock32.lib -DWITH_SOS=1 -DWITH_CLIENT_WFS=1 -DWITH_CLIENT_WMS=1 -DSVG_INCLUDE_DIR=%SDK_INC% -DSVG_LIBRARY=%SDK_LIB%/libsvg.lib -DSVGCAIRO_INCLUDE_DIR=%SDK_INC% -DSVGCAIRO_LIBRARY=%SDK_LIB%/libsvg-cairo.lib -DWITH_SVGCAIRO=1 -DREGEX_DIR=%REGEX_DIR% -DWITH_POINT_Z_M=1 -DWITH_KML=1 -DWITH_THREAD_SAFETY=1 -DSWIG_EXECUTABLE=%SWIG_EXECUTABLE% -DWITH_PYTHON=1 -DPYTHON_EXECUTABLE=%PYTHON_EXECUTABLE% -DWITH_CSHARP=1 -DWITH_PROTOBUFC=0 - cmake --build . --config Release test_script: @@ -68,11 +67,7 @@ after_test: - cd %BUILD_FOLDER% - 7z a mapserver.zip ./build/* -# Uncomment to enable debugging on the server -#on_finish: -# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - artifacts: - path: mapserver.zip name: mapserver - type: zip + type: zip \ No newline at end of file diff --git a/create_mapaxisorder_csv.py b/create_mapaxisorder_csv.py index b5d2985d93..f6ccf07ab7 100644 --- a/create_mapaxisorder_csv.py +++ b/create_mapaxisorder_csv.py @@ -26,20 +26,44 @@ # DEALINGS IN THE SOFTWARE. ############################################################################### -# To be run with GDAL 3.1 +# This requires the EPSG database to be loaded. +# See https://trac.osgeo.org/geotiff/browser/trunk/libgeotiff/csv/README -from osgeo import gdal, osr +from osgeo import ogr +ds = ogr.Open('PG:dbname=epsg') + +sql_lyr = ds.ExecuteSQL("""SELECT * +FROM epsg_coordinatereferencesystem +WHERE coord_sys_code IN +( + SELECT CAA.coord_sys_code + FROM epsg_coordinateaxis AS CAA + INNER JOIN epsg_coordinateaxis AS CAB ON CAA.coord_sys_code = CAB.coord_sys_code + WHERE + CAA.coord_axis_order=1 AND CAB.coord_axis_order=2 + AND + ( + ( CAA.coord_axis_orientation ILIKE 'north%' AND CAB.coord_axis_orientation ILIKE 'east%' ) + OR + ( CAA.coord_axis_orientation ILIKE 'south%' AND CAB.coord_axis_orientation ILIKE 'west%' ) + ) +) AND coord_ref_sys_code <= 32767 +ORDER BY coord_ref_sys_code""") -sr = osr.SpatialReference() print('epsg_code') -for code in range(32767): - gdal.PushErrorHandler() - ret = sr.ImportFromEPSGA(code) - gdal.PopErrorHandler() - if ret == 0 and sr.GetAxesCount() >= 2: - first_axis = sr.GetAxisOrientation(None, 0) - second_axis = sr.GetAxisOrientation(None, 1) - if first_axis == osr.OAO_North and second_axis == osr.OAO_East: - print(code) - elif first_axis == osr.OAO_South and second_axis == osr.OAO_West: +for f in sql_lyr: + print(f['coord_ref_sys_code']) + + +# Could work but GDAL doesn't support 3D geographical SRS at the moment +if False: + from osgeo import gdal, osr + + sr = osr.SpatialReference() + print('epsg_code') + for code in range(32767): + gdal.PushErrorHandler() + ret = sr.ImportFromEPSGA(code) + gdal.PopErrorHandler() + if ret == 0 and (sr.EPSGTreatsAsLatLong() or sr.EPSGTreatsAsNorthingEasting()): print(code) diff --git a/mapaxisorder.csv b/mapaxisorder.csv index 36cd0e5f02..daff83d6b3 100755 --- a/mapaxisorder.csv +++ b/mapaxisorder.csv @@ -658,10 +658,12 @@ epsg_code 3885 3888 3889 -3901 -3902 -3903 3906 +3907 +3908 +3909 +3910 +3911 4001 4002 4003 @@ -1454,9 +1456,6 @@ epsg_code 5481 5488 5489 -5498 -5499 -5500 5513 5515 5518 @@ -1493,7 +1492,6 @@ epsg_code 5588 5592 5593 -5628 5632 5633 5634 @@ -1506,78 +1504,24 @@ epsg_code 5652 5653 5681 +5801 +5802 +5803 +5804 +5808 +5809 +5810 +5811 +5812 +5813 +5814 +5815 +5816 5830 -5845 -5846 -5847 -5848 -5849 -5850 -5851 -5852 -5853 -5854 -5855 -5856 -5857 5885 5886 -5942 -5945 -5946 -5947 -5948 -5949 -5950 -5951 -5952 -5953 -5954 -5955 -5956 -5957 -5958 -5959 -5960 -5961 -5962 -5963 -5964 -5965 -5966 -5967 -5968 -5969 -5970 6134 6135 -6144 -6145 -6146 -6147 -6148 -6149 -6150 -6151 -6152 -6153 -6154 -6155 -6156 -6157 -6158 -6159 -6160 -6161 -6162 -6163 -6164 -6165 -6166 -6167 -6168 -6169 -6170 6207 6244 6245 @@ -1611,15 +1555,12 @@ epsg_code 6273 6274 6275 -6310 -6311 6318 6319 6321 6322 6324 6325 -6349 6362 6364 6365 @@ -1631,7 +1572,6 @@ epsg_code 6385 6386 6387 -6649 6667 6668 6669 @@ -1653,9 +1593,6 @@ epsg_code 6685 6686 6687 -6696 -6697 -6700 6705 6706 6707 @@ -1671,8 +1608,6 @@ epsg_code 6883 6892 6894 -6917 -6927 6962 6979 6980 @@ -1682,200 +1617,6 @@ epsg_code 6987 6989 6990 -7072 -7073 -7135 -7136 -7138 -7139 -7372 -7373 -7400 -7404 -7406 -7409 -7410 -7414 -7423 -7657 -7659 -7661 -7663 -7665 -7678 -7680 -7682 -7683 -7685 -7686 -7797 -7798 -7799 -7800 -7801 -7816 -7825 -7826 -7827 -7828 -7829 -7830 -7831 -7843 -7844 -7880 -7881 -7885 -7886 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7915 -7917 -7919 -7921 -7923 -7925 -7927 -7929 -7931 -8042 -8043 -8044 -8045 -8085 -8086 -8231 -8232 -8235 -8237 -8239 -8240 -8244 -8246 -8248 -8249 -8251 -8252 -8254 -8255 -8349 -8350 -8351 -8352 -8360 -8399 -8403 -8426 -8427 -8428 -8430 -8431 -8433 -8441 -8449 -8542 -8544 -8545 -8684 -8685 -8817 -8818 -8860 -8888 -8899 -8900 -8906 -8907 -8916 -8918 -8920 -8922 -8924 -8926 -8928 -8930 -8932 -8934 -8936 -8938 -8940 -8942 -8944 -8946 -8972 -8973 -8974 -8975 -8976 -8977 -8978 -8979 -8980 -8981 -8982 -8983 -8984 -8985 -8986 -8987 -8988 -8989 -8990 -8991 -8992 -8993 -8994 -8995 -8996 -8997 -8998 -8999 -9000 -9002 -9003 -9005 -9006 -9008 -9009 -9011 -9012 -9013 -9014 -9016 -9017 -9018 -9019 -9039 -9040 -9053 -9054 -9055 -9056 -9057 -9059 -9060 -9061 -9062 -9063 -9064 -9065 -9066 -9067 -9068 -9069 -9139 -9140 20004 20005 20006 @@ -1967,10 +1708,6 @@ epsg_code 21481 21482 21483 -21891 -21892 -21893 -21894 21896 21897 21898 @@ -2033,6 +1770,7 @@ epsg_code 27396 27397 27398 +27492 28402 28403 28404 @@ -2126,10 +1864,6 @@ epsg_code 31257 31258 31259 -31265 -31266 -31267 -31268 31275 31276 31277 @@ -2145,17 +1879,6 @@ epsg_code 31288 31289 31290 -31291 -31292 -31293 -31294 -31295 -31296 -31297 -31462 -31463 -31464 -31465 31466 31467 31468 diff --git a/mapaxisorder.h b/mapaxisorder.h index eadd4a38e2..23c65f974b 100644 --- a/mapaxisorder.h +++ b/mapaxisorder.h @@ -524,8 +524,8 @@ static unsigned char axisOrientationEpsgCodes[] = { 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -724,7 +724,7 @@ static unsigned char axisOrientationEpsgCodes[] = { 1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0, 1 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, @@ -740,7 +740,7 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -762,14 +762,14 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0, + 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, + 0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -779,11 +779,11 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -805,10 +805,10 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -825,12 +825,12 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -868,13 +868,13 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -901,8 +901,8 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -921,15 +921,12 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -958,13 +955,9 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 0 << 0, - 1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -994,10 +987,6 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -1011,24 +1000,13 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0, - 1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -1042,12 +1020,10 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -1065,10 +1041,6 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 0 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 1 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -1080,20 +1052,11 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -1104,8 +1067,6 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -1122,7 +1083,6 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -1139,38 +1099,16 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 1 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 1 << 0, - 0 << 7 | 1 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 0 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 1 << 0, - 0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 1 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -1179,7 +1117,69 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -2773,7 +2773,7 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -3473,7 +3473,7 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -3945,11 +3945,10 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, - 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 1 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 1 << 2 | 1 << 1 | 1 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, @@ -3969,8 +3968,9 @@ static unsigned char axisOrientationEpsgCodes[] = { 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 1 << 7 | 1 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, - 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 1 << 1 | 1 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, + 0 << 7 | 0 << 6 | 1 << 5 | 1 << 4 | 1 << 3 | 1 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0, diff --git a/mapcontext.c b/mapcontext.c index 50548044d9..9b54de3f4c 100644 --- a/mapcontext.c +++ b/mapcontext.c @@ -835,7 +835,7 @@ int msLoadMapContextLayer(mapObj *map, CPLXMLNode *psLayer, int nVersion, /* Status */ pszValue = (char*)CPLGetXMLValue(psLayer, "hidden", "1"); if((pszValue != NULL) && (atoi(pszValue) == 0 && - strcasecmp(pszValue, "true") != 0)) + !strcasecmp(pszValue, "true") == 0)) layer->status = MS_ON; else layer->status = MS_OFF; diff --git a/mapcopy.c b/mapcopy.c index 31197aa713..c1cc4ff8b3 100644 --- a/mapcopy.c +++ b/mapcopy.c @@ -317,11 +317,8 @@ int msCopyLabel(labelObj *dst, labelObj *src) for(i=0; ibindings[i].item, src->bindings[i].item); dst->bindings[i].index = src->bindings[i].index; /* no way to use the macros */ - MS_COPYSTRING(dst->exprBindings[i].string, src->exprBindings[i].string); - dst->exprBindings[i].type = src->exprBindings[i].type; } MS_COPYSTELEM(numbindings); - MS_COPYSTELEM(nexprbindings); MS_COPYSTRING(dst->font, src->font); @@ -474,11 +471,8 @@ int msCopyStyle(styleObj *dst, styleObj *src) for(i=0; ibindings[i].item, src->bindings[i].item); dst->bindings[i].index = src->bindings[i].index; /* no way to use the macros */ - MS_COPYSTRING(dst->exprBindings[i].string, src->exprBindings[i].string); - dst->exprBindings[i].type = src->exprBindings[i].type; } MS_COPYSTELEM(numbindings); - MS_COPYSTELEM(nexprbindings); MS_COPYCOLOR(&(dst->color), &(src->color)); MS_COPYCOLOR(&(dst->outlinecolor),&(src->outlinecolor)); diff --git a/mapfile.c b/mapfile.c index 43b4a10355..3f46fa139e 100644 --- a/mapfile.c +++ b/mapfile.c @@ -1675,11 +1675,9 @@ void initLabel(labelObj *label) label->styles = NULL; label->numbindings = 0; - label->nexprbindings = 0; for(i=0; ibindings[i].item = NULL; label->bindings[i].index = -1; - msInitExpression(&(label->exprBindings[i])); } msInitExpression(&(label->expression)); @@ -1720,10 +1718,8 @@ int freeLabel(labelObj *label) } msFree(label->styles); - for(i=0; ibindings[i].item); - msFreeExpression(&(label->exprBindings[i])); - } msFreeExpression(&(label->expression)); msFreeExpression(&(label->text)); @@ -1967,12 +1963,8 @@ static int loadLabel(labelObj *label) label->bindings[MS_LABEL_BINDING_SIZE].item = NULL; label->numbindings--; } - if (label->exprBindings[MS_LABEL_BINDING_SIZE].string) { - msFreeExpression(&label->exprBindings[MS_LABEL_BINDING_SIZE]); - label->nexprbindings--; - } - if((symbol = getSymbol(8, MS_EXPRESSION,MS_NUMBER,MS_BINDING,MS_TINY,MS_SMALL,MS_MEDIUM,MS_LARGE,MS_GIANT)) == -1) + if((symbol = getSymbol(7, MS_NUMBER,MS_BINDING,MS_TINY,MS_SMALL,MS_MEDIUM,MS_LARGE,MS_GIANT)) == -1) return(-1); if(symbol == MS_NUMBER) { @@ -1980,11 +1972,6 @@ static int loadLabel(labelObj *label) } else if(symbol == MS_BINDING) { label->bindings[MS_LABEL_BINDING_SIZE].item = msStrdup(msyystring_buffer); label->numbindings++; - } else if (symbol == MS_EXPRESSION) { - msFree(label->exprBindings[MS_LABEL_BINDING_SIZE].string); - label->exprBindings[MS_LABEL_BINDING_SIZE].string = msStrdup(msyystring_buffer); - label->exprBindings[MS_LABEL_BINDING_SIZE].type = MS_EXPRESSION; - label->nexprbindings++; } else label->size = symbol; break; @@ -2612,11 +2599,9 @@ int initStyle(styleObj *style) style->linejoinmaxsize = MS_CJC_DEFAULT_JOIN_MAXSIZE; style->numbindings = 0; - style->nexprbindings = 0; for(i=0; ibindings[i].item = NULL; style->bindings[i].index = -1; - msInitExpression(&(style->exprBindings[i])); } return MS_SUCCESS; @@ -2935,10 +2920,8 @@ int freeStyle(styleObj *style) msFreeExpression(&style->_geomtransform); msFree(style->rangeitem); - for(i=0; ibindings[i].item); - msFreeExpression(&(style->exprBindings[i])); - } return MS_SUCCESS; } @@ -4363,7 +4346,7 @@ int loadLayer(layerObj *layer, mapObj *map) if(getString(&layer->encoding) == MS_FAILURE) return(-1); break; case(END): - if((int)layer->type == -1) { + if(layer->type == -1) { msSetError(MS_MISCERR, "Layer type not set.", "loadLayer()"); return(-1); } @@ -4382,7 +4365,7 @@ int loadLayer(layerObj *layer, mapObj *map) break; } case(FEATURE): - if((int)layer->type == -1) { + if(layer->type == -1) { msSetError(MS_MISCERR, "Layer type must be set before defining inline features.", "loadLayer()"); return(-1); } @@ -6611,7 +6594,7 @@ static int loadMapInternal(mapObj *map) if((map->transparent = getSymbol(2, MS_ON,MS_OFF)) == -1) return MS_FAILURE; break; case(UNITS): - if((int)(map->units = getSymbol(7, MS_INCHES,MS_FEET,MS_MILES,MS_METERS,MS_KILOMETERS,MS_NAUTICALMILES,MS_DD)) == -1) return MS_FAILURE; + if((map->units = getSymbol(7, MS_INCHES,MS_FEET,MS_MILES,MS_METERS,MS_KILOMETERS,MS_NAUTICALMILES,MS_DD)) == -1) return MS_FAILURE; break; case(WEB): if(loadWeb(&(map->web), map) == -1) return MS_FAILURE; @@ -7030,7 +7013,7 @@ int msUpdateMapFromURL(mapObj *map, char *variable, char *string) msyystring = string; msyylex(); - if((int)(map->units = getSymbol(7, MS_INCHES,MS_FEET,MS_MILES,MS_METERS,MS_KILOMETERS,MS_NAUTICALMILES,MS_DD)) == -1) break; + if((map->units = getSymbol(7, MS_INCHES,MS_FEET,MS_MILES,MS_METERS,MS_KILOMETERS,MS_NAUTICALMILES,MS_DD)) == -1) break; break; case(WEB): return msUpdateWebFromString(&(map->web), string, MS_TRUE); diff --git a/mapgdal.c b/mapgdal.c index 03a9a9b109..18f6c1ce87 100644 --- a/mapgdal.c +++ b/mapgdal.c @@ -113,11 +113,6 @@ void msGDALCleanup( void ) bGDALInitialized = 0; } - -#if GDAL_VERSION_MAJOR >= 3 || (GDAL_VERSION_MAJOR == 2 && GDAL_VERSION_MINOR == 4) - /* Cleanup some GDAL global resources in particular */ - GDALDestroy(); -#endif } /************************************************************************/ @@ -287,22 +282,21 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, const char *filenameIn ) int iBand; for( iBand = 0; iBand < nBands; iBand++ ) { - CPLErr eErr; GDALRasterBandH hBand = GDALGetRasterBand( hMemDS, iBand+1 ); if( format->imagemode == MS_IMAGEMODE_INT16 ) { - eErr = GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, + GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, image->img.raw_16bit + iLine * image->width + iBand * image->width * image->height, image->width, 1, GDT_Int16, 2, 0 ); } else if( format->imagemode == MS_IMAGEMODE_FLOAT32 ) { - eErr = GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, + GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, image->img.raw_float + iLine * image->width + iBand * image->width * image->height, image->width, 1, GDT_Float32, 4, 0 ); } else if( format->imagemode == MS_IMAGEMODE_BYTE ) { - eErr = GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, + GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, image->img.raw_byte + iLine * image->width + iBand * image->width * image->height, image->width, 1, GDT_Byte, 1, 0 ); @@ -329,14 +323,13 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, const char *filenameIn ) msReleaseLock( TLOCK_GDAL ); msSetError( MS_MISCERR, "Missing RGB or A buffer.\n", "msSaveImageGDAL()" ); - GDALClose(hMemDS); return MS_FAILURE; } pabyData = (GByte *)(pixptr + iLine*rb.data.rgba.row_step); if( rb.data.rgba.a == NULL || iBand == 3 ) { - eErr = GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, + GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, pabyData, image->width, 1, GDT_Byte, rb.data.rgba.pixel_step, 0 ); } else { /* We need to un-pre-multiple RGB by alpha. */ @@ -359,18 +352,11 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, const char *filenameIn ) } } - eErr = GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, + GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1, pabyUPM, image->width, 1, GDT_Byte, 1, 0 ); free( pabyUPM ); } } - if( eErr != CE_None ) { - msReleaseLock( TLOCK_GDAL ); - msSetError( MS_MISCERR, "GDALRasterIO() failed.\n", - "msSaveImageGDAL()" ); - GDALClose(hMemDS); - return MS_FAILURE; - } } } diff --git a/maplayer.c b/maplayer.c index 895f0f65dc..f91dfedcec 100644 --- a/maplayer.c +++ b/maplayer.c @@ -830,7 +830,7 @@ int msLayerWhichItems(layerObj *layer, int get_all, const char *metadata) if(layer->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION) msTokenizeExpression(&layer->_geomtransform, layer->items, &(layer->numitems)); - + /* class level counts */ for(i=0; inumclasses; i++) { @@ -839,12 +839,6 @@ int msLayerWhichItems(layerObj *layer, int get_all, const char *metadata) nt += layer->class[i]->styles[j]->numbindings; if(layer->class[i]->styles[j]->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION) nt += msCountChars(layer->class[i]->styles[j]->_geomtransform.string, '['); - for(k=0; kclass[i]->styles[j]->exprBindings[k].type == MS_EXPRESSION) - { - nt += msCountChars(layer->class[i]->styles[j]->exprBindings[k].string, '['); - } - } } if(layer->class[i]->expression.type == MS_EXPRESSION) @@ -858,12 +852,6 @@ int msLayerWhichItems(layerObj *layer, int get_all, const char *metadata) if(layer->class[i]->labels[l]->styles[j]->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION) nt += msCountChars(layer->class[i]->labels[l]->styles[j]->_geomtransform.string, '['); } - for(k=0; kclass[i]->labels[l]->exprBindings[k].type == MS_EXPRESSION) - { - nt += msCountChars(layer->class[i]->labels[l]->exprBindings[k].string, '['); - } - } if(layer->class[i]->labels[l]->expression.type == MS_EXPRESSION) nt += msCountChars(layer->class[i]->labels[l]->expression.string, '['); @@ -920,12 +908,6 @@ int msLayerWhichItems(layerObj *layer, int get_all, const char *metadata) for(k=0; kclass[i]->styles[j]->bindings[k].item) layer->class[i]->styles[j]->bindings[k].index = string2list(layer->items, &(layer->numitems), layer->class[i]->styles[j]->bindings[k].item); - if (layer->class[i]->styles[j]->exprBindings[k].type == MS_EXPRESSION) - { - msTokenizeExpression( - &(layer->class[i]->styles[j]->exprBindings[k]), - layer->items, &(layer->numitems)); - } } if(layer->class[i]->styles[j]->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION) msTokenizeExpression(&(layer->class[i]->styles[j]->_geomtransform), layer->items, &(layer->numitems)); @@ -946,12 +928,6 @@ int msLayerWhichItems(layerObj *layer, int get_all, const char *metadata) for(k=0; kclass[i]->labels[l]->bindings[k].item) layer->class[i]->labels[l]->bindings[k].index = string2list(layer->items, &(layer->numitems), layer->class[i]->labels[l]->bindings[k].item); - if (layer->class[i]->labels[l]->exprBindings[k].type == MS_EXPRESSION) - { - msTokenizeExpression( - &(layer->class[i]->labels[l]->exprBindings[k]), - layer->items, &(layer->numitems)); - } } /* label expression */ @@ -1319,14 +1295,16 @@ makeTimeFilter(layerObj *lp, msFreeExpression(&lp->filter); */ - /* if the filter is set and it's a sting type, concatenate it with - the time. If not just free it */ - if (lp->filter.string && lp->filter.type == MS_STRING) { - pszBuffer = msStringConcatenate(pszBuffer, "(("); - pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string); - pszBuffer = msStringConcatenate(pszBuffer, ") and "); - } else { - msFreeExpression(&lp->filter); + if (&lp->filter) { + /* if the filter is set and it's a sting type, concatenate it with + the time. If not just free it */ + if (lp->filter.string && lp->filter.type == MS_STRING) { + pszBuffer = msStringConcatenate(pszBuffer, "(("); + pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string); + pszBuffer = msStringConcatenate(pszBuffer, ") and "); + } else { + msFreeExpression(&lp->filter); + } } pszBuffer = msStringConcatenate(pszBuffer, "("); @@ -1357,7 +1335,7 @@ makeTimeFilter(layerObj *lp, pszBuffer = msStringConcatenate(pszBuffer, ")"); /* if there was a filter, It was concatenate with an And ans should be closed*/ - if(lp->filter.string && lp->filter.type == MS_STRING) { + if(&lp->filter && lp->filter.string && lp->filter.type == MS_STRING) { pszBuffer = msStringConcatenate(pszBuffer, ")"); } @@ -1375,7 +1353,7 @@ makeTimeFilter(layerObj *lp, return MS_FALSE; } - if (lp->filter.string && lp->filter.type == MS_STRING) { + if (&lp->filter && lp->filter.string && lp->filter.type == MS_STRING) { pszBuffer = msStringConcatenate(pszBuffer, "(("); pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string); pszBuffer = msStringConcatenate(pszBuffer, ") and "); @@ -1500,7 +1478,7 @@ makeTimeFilter(layerObj *lp, /* load the string to the filter */ if (pszBuffer && strlen(pszBuffer) > 0) { - if(lp->filter.string && lp->filter.type == MS_STRING) + if(&lp->filter && lp->filter.string && lp->filter.type == MS_STRING) pszBuffer = msStringConcatenate(pszBuffer, ")"); /* if(lp->filteritem) diff --git a/mapmetadata.c b/mapmetadata.c index f00a039bd5..8ee11817bf 100644 --- a/mapmetadata.c +++ b/mapmetadata.c @@ -38,8 +38,7 @@ /* Create a gmd:name/gmd:CharacterString element pattern */ /************************************************************************/ -static -xmlNodePtr _msMetadataGetCharacterString(xmlNsPtr namespace, const char *name, const char *value) { +xmlNodePtr _msMetadataGetCharacterString(xmlNsPtr namespace, char *name, char *value) { xmlNsPtr psNsGco = NULL; xmlNodePtr psNode = NULL; @@ -62,8 +61,7 @@ xmlNodePtr _msMetadataGetCharacterString(xmlNsPtr namespace, const char *name, c /* Create a gmd:name/gmd:URL element pattern */ /************************************************************************/ -static -xmlNodePtr _msMetadataGetURL(xmlNsPtr namespace, const char *name, const char *value) { +xmlNodePtr _msMetadataGetURL(xmlNsPtr namespace, char *name, char *value) { xmlNsPtr psNsGco = NULL; xmlNodePtr psNode = NULL; @@ -85,14 +83,13 @@ xmlNodePtr _msMetadataGetURL(xmlNsPtr namespace, const char *name, const char *v /* Create a gmd:onLine element pattern */ /************************************************************************/ -static -xmlNodePtr _msMetadataGetOnline(xmlNsPtr namespace, layerObj *layer, const char *service, const char *format, const char *desc, const char *url_in) { +xmlNodePtr _msMetadataGetOnline(xmlNsPtr namespace, layerObj *layer, char *service, char *format, char *desc, char *url_in) { int status; char *url = NULL; char buffer[32]; char *epsg_str; - const char *link_protocol = "unknown protocol"; + char *link_protocol; xmlNodePtr psNode = NULL; xmlNodePtr psORNode = NULL; @@ -163,8 +160,7 @@ xmlNodePtr _msMetadataGetOnline(xmlNsPtr namespace, layerObj *layer, const char /* Create a gmd:name/gmd:Integer element pattern */ /************************************************************************/ -static -xmlNodePtr _msMetadataGetInteger(xmlNsPtr namespace, const char *name, int value) { +xmlNodePtr _msMetadataGetInteger(xmlNsPtr namespace, char *name, int value) { char buffer[8]; xmlNsPtr psNsGco = NULL; xmlNodePtr psNode = NULL; @@ -189,8 +185,7 @@ xmlNodePtr _msMetadataGetInteger(xmlNsPtr namespace, const char *name, int value /* Create a gmd:name/gmd:Decimal element pattern */ /************************************************************************/ -static -xmlNodePtr _msMetadataGetDecimal(xmlNsPtr namespace, const char *name, double value) { +xmlNodePtr _msMetadataGetDecimal(xmlNsPtr namespace, char *name, double value) { char buffer[32]; xmlNsPtr psNsGco = NULL; xmlNodePtr psNode = NULL; @@ -215,8 +210,7 @@ xmlNodePtr _msMetadataGetDecimal(xmlNsPtr namespace, const char *name, double va /* Create a gmd:name/gmd:* code list element pattern */ /************************************************************************/ -static -xmlNodePtr _msMetadataGetCodeList(xmlNsPtr namespace, const char *parent_element, const char *name, const char *value) { +xmlNodePtr _msMetadataGetCodeList(xmlNsPtr namespace, char *parent_element, char *name, char *value) { char *codelist = NULL; xmlNodePtr psNode = NULL; xmlNodePtr psCodeNode = NULL; @@ -239,8 +233,7 @@ xmlNodePtr _msMetadataGetCodeList(xmlNsPtr namespace, const char *parent_element /* Create a gmd:date or gmd:dateStamp element pattern */ /************************************************************************/ -static -xmlNodePtr _msMetadataGetDate(xmlNsPtr namespace, const char *parent_element, const char *date_type, const char *value) { +xmlNodePtr _msMetadataGetDate(xmlNsPtr namespace, char *parent_element, char *date_type, char *value) { xmlNsPtr psNsGco = NULL; xmlNodePtr psNode = NULL; xmlNodePtr psNode2 = NULL; diff --git a/mapogcsld.c b/mapogcsld.c index 88fdbe7d3d..b9ccc97495 100644 --- a/mapogcsld.c +++ b/mapogcsld.c @@ -597,6 +597,22 @@ layerObj *msSLDParseSLD(mapObj *map, char *psSLDXML, int *pnLayers) } +double _msSLDParseSizeParameter(CPLXMLNode *psSize) +{ + double dSize = 0; + CPLXMLNode *psLiteral = NULL; + + if (psSize) { + psLiteral = CPLGetXMLNode(psSize, "Literal"); + if (psLiteral && psLiteral->psChild && psLiteral->psChild->pszValue) + dSize = atof(psLiteral->psChild->pszValue); + else if (psSize->psChild && psSize->psChild->pszValue) + dSize = atof(psSize->psChild->pszValue); + } + + return dSize; +} + /************************************************************************/ /* _SLDApplyRuleValues */ /* */ @@ -1159,6 +1175,8 @@ int msSLDParseStroke(CPLXMLNode *psStroke, styleObj *psStyle, { CPLXMLNode *psCssParam = NULL, *psGraphicFill=NULL; char *psStrkName = NULL; + char *psColor = NULL; + int nLength = 0; char *pszDashValue = NULL; if (!psStroke || !psStyle) @@ -1177,24 +1195,34 @@ int msSLDParseStroke(CPLXMLNode *psStroke, styleObj *psStyle, if (psStrkName) { if (strcasecmp(psStrkName, "stroke") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - switch (iColorParam) { - case 0: - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psStyle, MS_STYLE_BINDING_COLOR, MS_OBJ_STYLE); - break; - case 1: - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psStyle, MS_STYLE_BINDING_OUTLINECOLOR, MS_OBJ_STYLE); - break; + if(psCssParam->psChild && psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) + psColor = psCssParam->psChild->psNext->pszValue; + + if (psColor) { + nLength = strlen(psColor); + /* expecting hexadecimal ex : #aaaaff */ + if (nLength == 7 && psColor[0] == '#') { + if (iColorParam == 0) { + psStyle->color.red = msHexToInt(psColor+1); + psStyle->color.green = msHexToInt(psColor+3); + psStyle->color.blue= msHexToInt(psColor+5); + } else if (iColorParam == 1) { + psStyle->outlinecolor.red = msHexToInt(psColor+1); + psStyle->outlinecolor.green = msHexToInt(psColor+3); + psStyle->outlinecolor.blue= msHexToInt(psColor+5); + } else if (iColorParam == 2) { + psStyle->backgroundcolor.red = msHexToInt(psColor+1); + psStyle->backgroundcolor.green = msHexToInt(psColor+3); + psStyle->backgroundcolor.blue= msHexToInt(psColor+5); + } } } } else if (strcasecmp(psStrkName, "stroke-width") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, psStyle, - MS_STYLE_BINDING_WIDTH, MS_OBJ_STYLE); + if(psCssParam->psChild && psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) { + psStyle->width = + atof(psCssParam->psChild->psNext->pszValue); } } else if (strcasecmp(psStrkName, "stroke-dasharray") == 0) { if(psCssParam->psChild && psCssParam->psChild->psNext && @@ -1220,10 +1248,15 @@ int msSLDParseStroke(CPLXMLNode *psStroke, styleObj *psStyle, msFreeCharArray(aszValues, nDash); } } else if (strcasecmp(psStrkName, "stroke-opacity") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psStyle, MS_STYLE_BINDING_OPACITY, MS_OBJ_STYLE); + if(psCssParam->psChild && psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) { + if (iColorParam == 0) { + psStyle->color.alpha = + (int)(atof(psCssParam->psChild->psNext->pszValue)*255); + } else { + psStyle->outlinecolor.alpha = + (int)(atof(psCssParam->psChild->psNext->pszValue)*255); + } } } } @@ -1250,217 +1283,6 @@ int msSLDParseStroke(CPLXMLNode *psStroke, styleObj *psStyle, -/************************************************************************/ -/* int msSLDParseOgcExpression(CPLXMLNode *psRoot, styleObj *psStyle, */ -/* enum MS_STYLE_BINDING_ENUM binding) */ -/* */ -/* Parse an OGC expression in a */ -/************************************************************************/ -int msSLDParseOgcExpression(CPLXMLNode *psRoot, void *psObj, int binding, - enum objType objtype) -{ - int status = MS_FAILURE; - const char * ops = "Add+Sub-Mul*Div/"; - styleObj * psStyle = psObj; - labelObj * psLabel = psObj; - int lbinding = binding; - expressionObj *exprBindings = psStyle->exprBindings; - int *nexprbindings = &psStyle->nexprbindings; - enum { MS_STYLE_BASE = 0, MS_LABEL_BASE = 100 }; - if (objtype == MS_OBJ_LABEL) - { - lbinding += MS_LABEL_BASE; - exprBindings = psLabel->exprBindings; - nexprbindings = &psLabel->nexprbindings; - } - - switch (psRoot->eType) - { - case CXT_Text: - // Parse a raw value - { - char * literalString = NULL; - literalString = msStringConcatenate(literalString, "("); - literalString = msStringConcatenate(literalString, psRoot->pszValue); - literalString = msStringConcatenate(literalString, ")"); - msInitExpression(&(exprBindings[binding])); - exprBindings[binding].string = literalString; - exprBindings[binding].type = MS_STRING; - } - switch (lbinding) - { - case MS_STYLE_BASE + MS_STYLE_BINDING_OFFSET_X: - psStyle->offsetx = atoi(psRoot->pszValue); - status = MS_SUCCESS; - break; - case MS_STYLE_BASE + MS_STYLE_BINDING_OFFSET_Y: - psStyle->offsety = atoi(psRoot->pszValue); - status = MS_SUCCESS; - break; - case MS_STYLE_BASE + MS_STYLE_BINDING_ANGLE: - psStyle->angle = atof(psRoot->pszValue); - status = MS_SUCCESS; - break; - case MS_STYLE_BASE + MS_STYLE_BINDING_SIZE: - psStyle->size = atof(psRoot->pszValue); - status = MS_SUCCESS; - break; - case MS_STYLE_BASE + MS_STYLE_BINDING_WIDTH: - psStyle->width = atof(psRoot->pszValue); - status = MS_SUCCESS; - break; - case MS_STYLE_BASE + MS_STYLE_BINDING_OPACITY: - psStyle->opacity = atof(psRoot->pszValue)*100; - status = MS_SUCCESS; - // Apply opacity as the alpha channel color(s) - if(psStyle->opacity < 100) - { - int alpha = MS_NINT(psStyle->opacity*2.55); - psStyle->color.alpha = alpha; - psStyle->outlinecolor.alpha = alpha; - psStyle->backgroundcolor.alpha = alpha; - psStyle->mincolor.alpha = alpha; - psStyle->maxcolor.alpha = alpha; - } - break; - case MS_STYLE_BASE + MS_STYLE_BINDING_COLOR: - if (strlen(psRoot->pszValue) == 7 && psRoot->pszValue[0] == '#') - { - psStyle->color.red = msHexToInt(psRoot->pszValue+1); - psStyle->color.green = msHexToInt(psRoot->pszValue+3); - psStyle->color.blue = msHexToInt(psRoot->pszValue+5); - status = MS_SUCCESS; - } - break; - case MS_STYLE_BASE + MS_STYLE_BINDING_OUTLINECOLOR: - if (strlen(psRoot->pszValue) == 7 && psRoot->pszValue[0] == '#') - { - psStyle->outlinecolor.red = msHexToInt(psRoot->pszValue+1); - psStyle->outlinecolor.green = msHexToInt(psRoot->pszValue+3); - psStyle->outlinecolor.blue = msHexToInt(psRoot->pszValue+5); - status = MS_SUCCESS; - } - break; - - case MS_LABEL_BASE + MS_LABEL_BINDING_SIZE: - psLabel->size = atof(psRoot->pszValue); - if (psLabel->size <= 0.0) - { - psLabel->size = 10.0; - } - status = MS_SUCCESS; - break; - case MS_LABEL_BASE + MS_LABEL_BINDING_ANGLE: - psLabel->angle = atof(psRoot->pszValue); - status = MS_SUCCESS; - break; - case MS_LABEL_BASE + MS_LABEL_BINDING_COLOR: - if (strlen(psRoot->pszValue) == 7 && psRoot->pszValue[0] == '#') - { - psLabel->color.red = msHexToInt(psRoot->pszValue+1); - psLabel->color.green = msHexToInt(psRoot->pszValue+3); - psLabel->color.blue= msHexToInt(psRoot->pszValue+5); - status = MS_SUCCESS; - } - break; - case MS_LABEL_BASE + MS_LABEL_BINDING_OUTLINECOLOR: - if (strlen(psRoot->pszValue) == 7 && psRoot->pszValue[0] == '#') - { - psLabel->outlinecolor.red = msHexToInt(psRoot->pszValue+1); - psLabel->outlinecolor.green = msHexToInt(psRoot->pszValue+3); - psLabel->outlinecolor.blue= msHexToInt(psRoot->pszValue+5); - status = MS_SUCCESS; - } - break; - default: - break; - } - break; - case CXT_Element: - if (strcasecmp(psRoot->pszValue,"Literal") == 0 && psRoot->psChild) - { - // Parse a element - status = msSLDParseOgcExpression(psRoot->psChild, psStyle, binding, - objtype); - } - else if (strcasecmp(psRoot->pszValue,"PropertyName") == 0 - && psRoot->psChild) - { - // Parse a element - char * propertyString = NULL; - char * strDelim = ""; - - switch (lbinding) - { - case MS_STYLE_BASE + MS_STYLE_BINDING_COLOR: - case MS_STYLE_BASE + MS_STYLE_BINDING_OUTLINECOLOR: - case MS_LABEL_BASE + MS_LABEL_BINDING_COLOR: - case MS_LABEL_BASE + MS_LABEL_BINDING_OUTLINECOLOR: - strDelim = "\""; - default: - propertyString = msStringConcatenate(propertyString, strDelim); - propertyString = msStringConcatenate(propertyString, "["); - propertyString = msStringConcatenate(propertyString, psRoot->psChild->pszValue); - propertyString = msStringConcatenate(propertyString, "]"); - propertyString = msStringConcatenate(propertyString, strDelim); - msInitExpression(&(psStyle->exprBindings[binding])); - exprBindings[binding].string = propertyString; - exprBindings[binding].type = MS_EXPRESSION; - (*nexprbindings)++; - break; - } - status = MS_SUCCESS; - } - else if (strstr(ops, psRoot->pszValue) - && psRoot->psChild && psRoot->psChild->psNext) - { - // Parse an arithmetic element , , , - const char operator[2] = { *(strstr(ops, psRoot->pszValue)+3), '\0' }; - char * expressionString = NULL; - - // Parse first operand - expressionString = msStringConcatenate(expressionString, "("); - msInitExpression(&(exprBindings[binding])); - status = msSLDParseOgcExpression(psRoot->psChild, psObj, binding, objtype); - - // Parse second operand - if (status == MS_SUCCESS) - { - expressionString = msStringConcatenate(expressionString, - exprBindings[binding].string); - expressionString = msStringConcatenate(expressionString, - operator); - msFree(exprBindings[binding].string); - msInitExpression(&(exprBindings[binding])); - status = msSLDParseOgcExpression(psRoot->psChild->psNext, - psObj, binding, objtype); - if (status == MS_SUCCESS) - { - expressionString = msStringConcatenate(expressionString, - exprBindings[binding].string); - expressionString = msStringConcatenate(expressionString, - ")"); - msFree(exprBindings[binding].string); - exprBindings[binding].string = expressionString; - exprBindings[binding].type = MS_EXPRESSION; - (*nexprbindings)++; - } - } - if (status == MS_FAILURE) - { - msInitExpression(&(exprBindings[binding])); - } - } - break; - default: - break; - } - - return status; -} - - - /************************************************************************/ /* void msSLDParsePolygonSymbolizer(CPLXMLNode *psRoot, */ /* layerObj *psLayer) */ @@ -1636,7 +1458,8 @@ int msSLDParsePolygonFill(CPLXMLNode *psFill, styleObj *psStyle, mapObj *map) { CPLXMLNode *psCssParam, *psGraphicFill; - char *psFillName=NULL; + char *psColor=NULL, *psFillName=NULL; + int nLength = 0; if (!psFill || !psStyle || !map) return MS_FAILURE; @@ -1657,16 +1480,23 @@ int msSLDParsePolygonFill(CPLXMLNode *psFill, styleObj *psStyle, psFillName = (char*)CPLGetXMLValue(psCssParam, "name", NULL); if (psFillName) { if (strcasecmp(psFillName, "fill") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psStyle, MS_STYLE_BINDING_COLOR, MS_OBJ_STYLE); + if(psCssParam->psChild && psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) + psColor = psCssParam->psChild->psNext->pszValue; + + if (psColor) { + nLength = strlen(psColor); + /* expecting hexadecimal ex : #aaaaff */ + if (nLength == 7 && psColor[0] == '#') { + psStyle->color.red = msHexToInt(psColor+1); + psStyle->color.green = msHexToInt(psColor+3); + psStyle->color.blue= msHexToInt(psColor+5); + } } } else if (strcasecmp(psFillName, "fill-opacity") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psStyle, MS_STYLE_BINDING_OPACITY, MS_OBJ_STYLE); + if(psCssParam->psChild && psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) { + psStyle->color.alpha = (int)(atof(psCssParam->psChild->psNext->pszValue)*255); } } } @@ -1704,8 +1534,11 @@ int msSLDParseGraphicFillOrStroke(CPLXMLNode *psRoot, CPLXMLNode *psDisplacement=NULL, *psDisplacementX=NULL, *psDisplacementY=NULL; CPLXMLNode *psOpacity=NULL, *psRotation=NULL; char *psName=NULL, *psValue = NULL; + int nLength = 0; char *pszSymbolName = NULL; int bFilled = 0; + CPLXMLNode *psPropertyName=NULL; + char szTmp[256]; if (!psRoot || !psStyle || !map) return MS_FAILURE; @@ -1723,11 +1556,8 @@ int msSLDParseGraphicFillOrStroke(CPLXMLNode *psRoot, if (psGraphic) { /* extract symbol size */ psSize = CPLGetXMLNode(psGraphic, "Size"); - if (psSize && psSize->psChild) - { - msSLDParseOgcExpression(psSize->psChild, - psStyle, MS_STYLE_BINDING_SIZE, MS_OBJ_STYLE); - } + if (psSize) + psStyle->size = _msSLDParseSizeParameter(psSize); else { /*do not set a default for external symbols #2305*/ psExternalGraphic = CPLGetXMLNode(psGraphic, "ExternalGraphic"); @@ -1737,32 +1567,34 @@ int msSLDParseGraphicFillOrStroke(CPLXMLNode *psRoot, /*SLD 1.1.0 extract opacity, rotation, displacement*/ psOpacity = CPLGetXMLNode(psGraphic, "Opacity"); - if (psOpacity && psOpacity->psChild) - { - msSLDParseOgcExpression(psOpacity->psChild, - psStyle, MS_STYLE_BINDING_OPACITY, MS_OBJ_STYLE); - } + if (psOpacity && psOpacity->psChild && psOpacity->psChild->pszValue) + psStyle->opacity = (int)(atof(psOpacity->psChild->pszValue) * 100); psRotation = CPLGetXMLNode(psGraphic, "Rotation"); - if (psRotation && psRotation->psChild) - { - msSLDParseOgcExpression(psRotation->psChild, - psStyle, MS_STYLE_BINDING_ANGLE, MS_OBJ_STYLE); + if (psRotation) { + psPropertyName = CPLGetXMLNode(psRotation, "PropertyName"); + if (psPropertyName) { + snprintf(szTmp, sizeof(szTmp), "%s", CPLGetXMLValue(psPropertyName, NULL, NULL)); + psStyle->bindings[MS_STYLE_BINDING_ANGLE].item = msStrdup(szTmp); + psStyle->numbindings++; + } else { + if (psRotation->psChild && psRotation->psChild->pszValue) + psStyle->angle = atof(psRotation->psChild->pszValue); + } } psDisplacement = CPLGetXMLNode(psGraphic, "Displacement"); - if (psDisplacement && psDisplacement->psChild) - { + if (psDisplacement) { psDisplacementX = CPLGetXMLNode(psDisplacement, "DisplacementX"); - if (psDisplacementX && psDisplacementX->psChild) - { - msSLDParseOgcExpression(psDisplacementX->psChild, - psStyle, MS_STYLE_BINDING_OFFSET_X, MS_OBJ_STYLE); - } psDisplacementY = CPLGetXMLNode(psDisplacement, "DisplacementY"); - if (psDisplacementY && psDisplacementY->psChild) - { - msSLDParseOgcExpression(psDisplacementY->psChild, - psStyle, MS_STYLE_BINDING_OFFSET_Y, MS_OBJ_STYLE); + /* psCssParam->psChild->psNext->pszValue) */ + if (psDisplacementX && + psDisplacementX->psChild && + psDisplacementX->psChild->pszValue && + psDisplacementY && + psDisplacementY->psChild && + psDisplacementY->psChild->pszValue) { + psStyle->offsetx = atoi(psDisplacementX->psChild->pszValue); + psStyle->offsety = atoi(psDisplacementY->psChild->pszValue); } } /* extract symbol */ @@ -1814,19 +1646,27 @@ int msSLDParseGraphicFillOrStroke(CPLXMLNode *psRoot, (char*)CPLGetXMLValue(psCssParam, "name", NULL); if (psName && strcasecmp(psName, "fill") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psStyle, MS_STYLE_BINDING_COLOR, MS_OBJ_STYLE); + if(psCssParam->psChild && + psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) + psValue = psCssParam->psChild->psNext->pszValue; + + if (psValue) { + nLength = strlen(psValue); + if (nLength == 7 && psValue[0] == '#') { + msSLDSetColorObject(psValue, + &psStyle->color); + } } } else if (psName && strcasecmp(psName, "fill-opacity") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { + if(psCssParam->psChild && + psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) psValue = psCssParam->psChild->psNext->pszValue; - if (psValue) { - psStyle->color.alpha = (int)(atof(psValue)*255); - } + + if (psValue) { + psStyle->color.alpha = (int)(atof(psValue)*255); } } @@ -1846,26 +1686,37 @@ int msSLDParseGraphicFillOrStroke(CPLXMLNode *psRoot, (char*)CPLGetXMLValue(psCssParam, "name", NULL); if (psName && strcasecmp(psName, "stroke") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psStyle, MS_STYLE_BINDING_OUTLINECOLOR, MS_OBJ_STYLE); + if(psCssParam->psChild && + psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) + psValue = psCssParam->psChild->psNext->pszValue; + + if (psValue) { + nLength = strlen(psValue); + if (nLength == 7 && psValue[0] == '#') { + msSLDSetColorObject(psValue, + &psStyle->outlinecolor); + } } } else if (psName && strcasecmp(psName, "stroke-opacity") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { + if(psCssParam->psChild && + psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) psValue = psCssParam->psChild->psNext->pszValue; - if (psValue) { - psStyle->outlinecolor.alpha = (int)(atof(psValue)*255); - } + + if (psValue) { + psStyle->outlinecolor.alpha = (int)(atof(psValue)*255); } } else if (psName && strcasecmp(psName, "stroke-width") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psStyle, MS_STYLE_BINDING_WIDTH, MS_OBJ_STYLE); + if(psCssParam->psChild && + psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) + psValue = psCssParam->psChild->psNext->pszValue; + + if (psValue) { + psStyle->width = atof(psValue); } } @@ -2813,6 +2664,7 @@ int msSLDParseTextParams(CPLXMLNode *psRoot, layerObj *psLayer, classObj *psClass) { char szFontName[100]; + double dfFontSize = 10; CPLXMLNode *psLabel=NULL, *psFont=NULL; CPLXMLNode *psCssParam = NULL; @@ -2820,6 +2672,9 @@ int msSLDParseTextParams(CPLXMLNode *psRoot, layerObj *psLayer, char *pszFontWeight=NULL; CPLXMLNode *psLabelPlacement=NULL, *psPointPlacement=NULL, *psLinePlacement=NULL; CPLXMLNode *psFill = NULL, *psPropertyName=NULL, *psHalo=NULL, *psHaloRadius=NULL, *psHaloFill=NULL; + int nLength = 0; + char *pszColor = NULL; + /* char *pszItem = NULL; */ CPLXMLNode *psTmpNode = NULL; char *pszClassText = NULL; char szTmp[100]; @@ -2916,11 +2771,12 @@ int msSLDParseTextParams(CPLXMLNode *psRoot, layerObj *psLayer, } /* default is 10 pix */ else if (strcasecmp(pszName, "font-size") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, - psLabelObj, MS_LABEL_BINDING_SIZE, MS_OBJ_LABEL); - } + + if(psCssParam->psChild && psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) + dfFontSize = atof(psCssParam->psChild->psNext->pszValue); + if (dfFontSize <=0.0) + dfFontSize = 10.0; } } psCssParam = psCssParam->psNext; @@ -2964,6 +2820,7 @@ int msSLDParseTextParams(CPLXMLNode *psRoot, layerObj *psLayer, psLabelObj->font = msStrdup(szFontName); } } + psLabelObj->size = dfFontSize; /* -------------------------------------------------------------------- */ /* parse the halo parameter. */ @@ -2987,10 +2844,18 @@ int msSLDParseTextParams(CPLXMLNode *psRoot, layerObj *psLayer, pszName = (char*)CPLGetXMLValue(psCssParam, "name", NULL); if (pszName) { if (strcasecmp(pszName, "fill") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, psLabelObj, - MS_LABEL_BINDING_OUTLINECOLOR, MS_OBJ_LABEL); + if(psCssParam->psChild && psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) + pszColor = psCssParam->psChild->psNext->pszValue; + + if (pszColor) { + nLength = strlen(pszColor); + /* expecting hexadecimal ex : #aaaaff */ + if (nLength == 7 && pszColor[0] == '#') { + psLabelObj->outlinecolor.red = msHexToInt(pszColor+1); + psLabelObj->outlinecolor.green = msHexToInt(pszColor+3); + psLabelObj->outlinecolor.blue = msHexToInt(pszColor+5); + } } } } @@ -3016,10 +2881,18 @@ int msSLDParseTextParams(CPLXMLNode *psRoot, layerObj *psLayer, pszName = (char*)CPLGetXMLValue(psCssParam, "name", NULL); if (pszName) { if (strcasecmp(pszName, "fill") == 0) { - if(psCssParam->psChild && psCssParam->psChild->psNext) - { - msSLDParseOgcExpression(psCssParam->psChild->psNext, psLabelObj, - MS_LABEL_BINDING_COLOR, MS_OBJ_LABEL); + if(psCssParam->psChild && psCssParam->psChild->psNext && + psCssParam->psChild->psNext->pszValue) + pszColor = psCssParam->psChild->psNext->pszValue; + + if (pszColor) { + nLength = strlen(pszColor); + /* expecting hexadecimal ex : #aaaaff */ + if (nLength == 7 && pszColor[0] == '#') { + psLabelObj->color.red = msHexToInt(pszColor+1); + psLabelObj->color.green = msHexToInt(pszColor+3); + psLabelObj->color.blue = msHexToInt(pszColor+5); + } } } } @@ -3043,7 +2916,8 @@ int ParseTextPointPlacement(CPLXMLNode *psRoot, classObj *psClass) CPLXMLNode *psAnchor, *psAnchorX, *psAnchorY; double dfAnchorX=0, dfAnchorY=0; CPLXMLNode *psDisplacement, *psDisplacementX, *psDisplacementY; - CPLXMLNode *psRotation=NULL; + CPLXMLNode *psRotation=NULL, *psPropertyName=NULL; + char szTmp[100]; labelObj *psLabelObj = NULL; if (!psRoot || !psClass) @@ -3125,10 +2999,16 @@ int ParseTextPointPlacement(CPLXMLNode *psRoot, classObj *psClass) /* parse rotation. */ /* -------------------------------------------------------------------- */ psRotation = CPLGetXMLNode(psRoot, "Rotation"); - if (psRotation && psRotation->psChild) - { - msSLDParseOgcExpression(psRotation->psChild, psLabelObj, - MS_LABEL_BINDING_ANGLE, MS_OBJ_LABEL); + if (psRotation) { + psPropertyName = CPLGetXMLNode(psRotation, "PropertyName"); + if (psPropertyName) { + snprintf(szTmp, sizeof(szTmp), "%s", CPLGetXMLValue(psPropertyName, NULL, NULL)); + psLabelObj->bindings[MS_LABEL_BINDING_ANGLE].item = msStrdup(szTmp); + psLabelObj->numbindings++; + } else { + if (psRotation->psChild && psRotation->psChild->pszValue) + psLabelObj->angle = atof(psRotation->psChild->pszValue); + } } return MS_SUCCESS; @@ -4133,8 +4013,8 @@ char *msSLDGenerateTextSLD(classObj *psClass, layerObj *psLayer, int nVersion) snprintf(szTmp, sizeof(szTmp), "<%sFill>\n", sNameSpace ); pszSLD = msStringConcatenate(pszSLD, szTmp); - sprintf(szHexColor,"%02hhx%02hhx%02hhx",(unsigned char)nColorRed, - (unsigned char)nColorGreen, (unsigned char)nColorBlue); + sprintf(szHexColor,"%02hhx%02hhx%02hhx",nColorRed, + nColorGreen, nColorBlue); snprintf(szTmp, sizeof(szTmp), "<%s name=\"fill\">#%s\n", diff --git a/mapogcsld.h b/mapogcsld.h index 255ec01424..f70f8135c8 100644 --- a/mapogcsld.h +++ b/mapogcsld.h @@ -39,7 +39,6 @@ MS_DLL_EXPORT int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer, /* There is a dependency to OGR for the MiniXML parser */ #include "cpl_minixml.h" -enum objType { MS_OBJ_STYLE, MS_OBJ_LABEL }; /* -------------------------------------------------------------------- */ /* prototypes. */ @@ -49,8 +48,6 @@ int msSLDParseNamedLayer(CPLXMLNode *psRoot, layerObj *layer); int msSLDParseRule(CPLXMLNode *psRoot, layerObj *psLayer); int msSLDParseStroke(CPLXMLNode *psStroke, styleObj *psStyle, mapObj *map, int iColorParam); -int msSLDParseOgcExpression(CPLXMLNode *psRoot, void *psObj, int binding, - enum objType objtype); int msSLDParsePolygonFill(CPLXMLNode *psFill, styleObj *psStyle, mapObj *map); diff --git a/mapogcsos.c b/mapogcsos.c index f5572ceda8..65432c5981 100644 --- a/mapogcsos.c +++ b/mapogcsos.c @@ -1924,8 +1924,10 @@ this request. Check sos/ows_enable_request settings.", "msSOSGetObservation()", /* HACK END */ pszBuffer = NULL; - if (lp->filter.string && strlen(lp->filter.string) > 0) - msFreeExpression(&lp->filter); + if (&lp->filter) { + if (lp->filter.string && strlen(lp->filter.string) > 0) + msFreeExpression(&lp->filter); + } /*The filter should reflect the underlying db*/ /*for ogr add a where clause */ diff --git a/mapogroutput.c b/mapogroutput.c index f577e0ad0d..d695d9feab 100644 --- a/mapogroutput.c +++ b/mapogroutput.c @@ -148,8 +148,7 @@ char **msOGRRecursiveFileList( const char *path ) CPLFormFilename( path, file_list[i], NULL ), sizeof(full_filename) ); - if( VSIStatL( full_filename, &sStatBuf ) != 0 ) - continue; + VSIStatL( full_filename, &sStatBuf ); if( VSI_ISREG( sStatBuf.st_mode ) ) { result_list = CSLAddString( result_list, full_filename ); @@ -198,8 +197,7 @@ static void msOGRCleanupDS( const char *datasource_name ) CPLFormFilename( path, file_list[i], NULL ), sizeof(full_filename) ); - if( VSIStatL( full_filename, &sStatBuf ) != 0 ) - continue; + VSIStatL( full_filename, &sStatBuf ); if( VSI_ISREG( sStatBuf.st_mode ) ) { VSIUnlink( full_filename ); @@ -701,23 +699,16 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders ) int iLayer, i; int bDataSourceNameIsRequestDir = FALSE; int bUseFeatureId = MS_FALSE; - const char* pszMatchingFeatures; - int nMatchingFeatures = -1; - const char* pszFormatName = format->driver+4; - - pszMatchingFeatures = msGetOutputFormatOption(format, "_matching_features_", ""); - if( pszMatchingFeatures[0] != '\0' ) - nMatchingFeatures = atoi(pszMatchingFeatures); /* -------------------------------------------------------------------- */ /* Fetch the output format driver. */ /* -------------------------------------------------------------------- */ msOGRInitialize(); - hDriver = OGRGetDriverByName( pszFormatName ); + hDriver = OGRGetDriverByName( format->driver+4 ); if( hDriver == NULL ) { msSetError( MS_MISCERR, "No OGR driver named `%s' available.", - "msOGRWriteFromQuery()", pszFormatName ); + "msOGRWriteFromQuery()", format->driver+4 ); return MS_FAILURE; } @@ -732,29 +723,6 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders ) ds_options = CSLAddString( ds_options, format->formatoptions[i] + 5 ); } - if( EQUAL(pszFormatName, "GeoJSON") && nMatchingFeatures >= 0 ) - { - const char* pszNativeData = - CSLFetchNameValueDef(layer_options, "NATIVE_DATA", "{}"); - if( pszNativeData[strlen(pszNativeData)-1] == '}' ) - { - char szTemp[32]; - char* pszTemplate = msSmallMalloc(strlen(pszNativeData) + 32); - strcpy(pszTemplate, pszNativeData); - pszTemplate[strlen(pszTemplate)-1] = 0; - if( strlen(pszNativeData) > 2 ) - strcat(pszTemplate, ","); - sprintf(szTemp, "\"numberMatched\":%d}", nMatchingFeatures); - strcat(pszTemplate, szTemp); - layer_options = CSLSetNameValue(layer_options, - "NATIVE_MEDIA_TYPE", - "application/vnd.geo+json"); - layer_options = CSLSetNameValue(layer_options, - "NATIVE_DATA", - pszTemplate); - msFree(pszTemplate); - } - } if(!strcasecmp("true",msGetOutputFormatOption(format,"USE_FEATUREID","false"))) { bUseFeatureId = MS_TRUE; } diff --git a/mapoutput.c b/mapoutput.c index 06507f1f42..fc28905b1d 100644 --- a/mapoutput.c +++ b/mapoutput.c @@ -1164,7 +1164,6 @@ void msOutputFormatResolveFromImage( mapObj *map, imageObj* img ) ret = format->vtable->getRasterBufferHandle(img,&rb); assert( ret == MS_SUCCESS ); - (void)ret; if( rb.data.rgba.a ) { int row; diff --git a/mappostgis.c b/mappostgis.c index 75b22d1fca..8f75d587d9 100644 --- a/mappostgis.c +++ b/mappostgis.c @@ -333,28 +333,21 @@ wkbReadPointP(wkbObj *w, pointObj *p, int nZMFlag) { #ifdef USE_POINT_Z_M memcpy(&(p->z), w->ptr, sizeof(double)); + if( !(nZMFlag & HAS_M) ) + p->m = 0.0; #endif w->ptr += sizeof(double); } -#ifdef USE_POINT_Z_M - else - { - p->z = 0; - } -#endif if( nZMFlag & HAS_M ) { #ifdef USE_POINT_Z_M + if( !(nZMFlag & HAS_Z) ) + p->z = 0.0; memcpy(&(p->m), w->ptr, sizeof(double)); #endif w->ptr += sizeof(double); } -#ifdef USE_POINT_Z_M - else - { - p->m = 0; - } -#endif + } /* diff --git a/mapproject.c b/mapproject.c index 886244c3ad..a0ece015a1 100644 --- a/mapproject.c +++ b/mapproject.c @@ -31,7 +31,6 @@ #include "mapproject.h" #include "mapthread.h" #include -#include #include #include #include "mapaxisorder.h" @@ -190,15 +189,21 @@ int msProjectPoint(projectionObj *in, projectionObj *out, pointObj *point) /************************************************************************/ #ifdef USE_PROJ static void msProjectGrowRect(projectionObj *in, projectionObj *out, - rectObj *prj_rect, + rectObj *prj_rect, int *rect_initialized, pointObj *prj_point, int *failure ) { if( msProjectPoint(in, out, prj_point) == MS_SUCCESS ) { + if( *rect_initialized ) { prj_rect->miny = MS_MIN(prj_rect->miny, prj_point->y); prj_rect->maxy = MS_MAX(prj_rect->maxy, prj_point->y); prj_rect->minx = MS_MIN(prj_rect->minx, prj_point->x); prj_rect->maxx = MS_MAX(prj_rect->maxx, prj_point->x); + } else { + prj_rect->minx = prj_rect->maxx = prj_point->x; + prj_rect->miny = prj_rect->maxy = prj_point->y; + *rect_initialized = MS_TRUE; + } } else (*failure)++; } @@ -636,17 +641,12 @@ int msProjectRectGrid(projectionObj *in, projectionObj *out, rectObj *rect) #ifdef USE_PROJ pointObj prj_point; rectObj prj_rect; - int failure=0; + int rect_initialized = MS_FALSE, failure=0; int ix, iy; double dx, dy; double x, y; - prj_rect.minx = DBL_MAX; - prj_rect.miny = DBL_MAX; - prj_rect.maxx = -DBL_MAX; - prj_rect.maxy = -DBL_MAX; - dx = (rect->maxx - rect->minx)/NUMBER_OF_SAMPLE_POINTS; dy = (rect->maxy - rect->miny)/NUMBER_OF_SAMPLE_POINTS; @@ -660,7 +660,7 @@ int msProjectRectGrid(projectionObj *in, projectionObj *out, rectObj *rect) prj_point.m = 0.0; #endif /* USE_POINT_Z_M */ - msProjectGrowRect(in,out,&prj_rect,&prj_point, + msProjectGrowRect(in,out,&prj_rect,&rect_initialized,&prj_point, &failure); failure = 0; @@ -672,23 +672,20 @@ int msProjectRectGrid(projectionObj *in, projectionObj *out, rectObj *rect) prj_point.x = x; prj_point.y = y; - msProjectGrowRect(in,out,&prj_rect,&prj_point, + msProjectGrowRect(in,out,&prj_rect,&rect_initialized,&prj_point, &failure); } } - if( prj_rect.minx > prj_rect.maxx ) { - rect->minx = 0; - rect->maxx = 0; - rect->miny = 0; - rect->maxy = 0; + if( !rect_initialized ) { + prj_rect.minx = 0; + prj_rect.maxx = 0; + prj_rect.miny = 0; + prj_rect.maxy = 0; msSetError(MS_PROJERR, "All points failed to reproject.", "msProjectRect()"); - return MS_FAILURE; - } - - if( failure ) { - msDebug( "msProjectRect(): some points failed to reproject, doing internal sampling.\n" ); + } else { + msDebug( "msProjectRect(): some points failed to reproject, doing internal sampling.\n" ); } rect->minx = prj_rect.minx; @@ -696,7 +693,10 @@ int msProjectRectGrid(projectionObj *in, projectionObj *out, rectObj *rect) rect->maxx = prj_rect.maxx; rect->maxy = prj_rect.maxy; - return(MS_SUCCESS); + if( !rect_initialized ) + return MS_FAILURE; + else + return(MS_SUCCESS); #else msSetError(MS_PROJERR, "Projection support is not available.", "msProjectRect()"); return(MS_FAILURE); @@ -714,17 +714,12 @@ msProjectRectTraditionalEdge(projectionObj *in, projectionObj *out, #ifdef USE_PROJ pointObj prj_point; rectObj prj_rect; - int failure=0; + int rect_initialized = MS_FALSE, failure=0; int ix, iy; double dx, dy; double x, y; - prj_rect.minx = DBL_MAX; - prj_rect.miny = DBL_MAX; - prj_rect.maxx = -DBL_MAX; - prj_rect.maxy = -DBL_MAX; - dx = (rect->maxx - rect->minx)/NUMBER_OF_SAMPLE_POINTS; dy = (rect->maxy - rect->miny)/NUMBER_OF_SAMPLE_POINTS; @@ -738,7 +733,7 @@ msProjectRectTraditionalEdge(projectionObj *in, projectionObj *out, prj_point.m = 0.0; #endif /* USE_POINT_Z_M */ - msProjectGrowRect(in,out,&prj_rect,&prj_point, + msProjectGrowRect(in,out,&prj_rect,&rect_initialized,&prj_point, &failure); /* sample along top and bottom */ @@ -748,12 +743,12 @@ msProjectRectTraditionalEdge(projectionObj *in, projectionObj *out, prj_point.x = x; prj_point.y = rect->miny; - msProjectGrowRect(in,out,&prj_rect,&prj_point, + msProjectGrowRect(in,out,&prj_rect,&rect_initialized,&prj_point, &failure); prj_point.x = x; prj_point.y = rect->maxy; - msProjectGrowRect(in,out,&prj_rect,,&prj_point, + msProjectGrowRect(in,out,&prj_rect,&rect_initialized,&prj_point, &failure); } } @@ -765,12 +760,12 @@ msProjectRectTraditionalEdge(projectionObj *in, projectionObj *out, prj_point.y = y; prj_point.x = rect->minx; - msProjectGrowRect(in,out,&prj_rect,&prj_point, + msProjectGrowRect(in,out,&prj_rect,&rect_initialized,&prj_point, &failure); prj_point.x = rect->maxx; prj_point.y = y; - msProjectGrowRect(in,out,&prj_rect,&prj_point, + msProjectGrowRect(in,out,&prj_rect,&rect_initialized,&prj_point, &failure); } } @@ -787,7 +782,7 @@ msProjectRectTraditionalEdge(projectionObj *in, projectionObj *out, rect->maxx = prj_rect.maxx; rect->maxy = prj_rect.maxy; - if( prj_rect.minx > prj_rect.maxx ) + if( !rect_initialized ) return MS_FAILURE; else return(MS_SUCCESS); diff --git a/mapscale.c b/mapscale.c index b2a6466bfa..03fda1ac79 100644 --- a/mapscale.c +++ b/mapscale.c @@ -169,7 +169,7 @@ imageObj *msDrawScalebar(mapObj *map) strokeStyle.patternlength=0; initTextSymbol(&ts); - if((int)map->units == -1) { + if(map->units == -1) { msSetError(MS_MISCERR, "Map units not set.", "msDrawScalebar()"); return(NULL); } diff --git a/mapscript/php/mapscript_i.c b/mapscript/php/mapscript_i.c index 07f5ff50f2..63b6eb66c0 100644 --- a/mapscript/php/mapscript_i.c +++ b/mapscript/php/mapscript_i.c @@ -283,7 +283,7 @@ int mapObj_save(mapObj* self, char *filename) return msSaveMap(self, filename); } -const char *mapObj_getMetaData(mapObj *self, char *name) +char *mapObj_getMetaData(mapObj *self, char *name) { return(msLookupHashTable(&(self->web.metadata), name)); } @@ -793,7 +793,7 @@ int layerObj_addFeature(layerObj *self, shapeObj *shape) return MS_SUCCESS; } -const char *layerObj_getMetaData(layerObj *self, char *name) +char *layerObj_getMetaData(layerObj *self, char *name) { return(msLookupHashTable(&(self->metadata), name)); } diff --git a/mapscript/php/php_mapscript.c b/mapscript/php/php_mapscript.c index a3e423759f..6870f0a06c 100644 --- a/mapscript/php/php_mapscript.c +++ b/mapscript/php/php_mapscript.c @@ -185,7 +185,7 @@ PHP_FUNCTION(ms_newLayerObj) layerObj *layer; int index; php_map_object *php_map; - php_layer_object *php_layer = NULL; + php_layer_object *php_layer; parent_object parent; PHP_MAPSCRIPT_ERROR_HANDLING(TRUE); diff --git a/mapscript/php/php_mapscript.h b/mapscript/php/php_mapscript.h index dc20429389..740aa48998 100644 --- a/mapscript/php/php_mapscript.h +++ b/mapscript/php/php_mapscript.h @@ -877,7 +877,7 @@ int mapObj_setWKTProjection(mapObj *self, char *string); char* mapObj_getProjection(mapObj* self); int mapObj_setProjection(mapObj* self, char *string); int mapObj_save(mapObj* self, char *filename); -const char *mapObj_getMetaData(mapObj *self, char *name); +char *mapObj_getMetaData(mapObj *self, char *name); int mapObj_setMetaData(mapObj *self, char *name, char *value); int mapObj_removeMetaData(mapObj *self, char *name); void mapObj_freeQuery(mapObj *self, int qlayer); @@ -954,7 +954,7 @@ int layerObj_setWKTProjection(layerObj *self, char *string); char* layerObj_getProjection(layerObj *self); int layerObj_setProjection(layerObj *self, char *string); int layerObj_addFeature(layerObj *self, shapeObj *shape); -const char *layerObj_getMetaData(layerObj *self, char *name); +char *layerObj_getMetaData(layerObj *self, char *name); int layerObj_setMetaData(layerObj *self, char *name, char *value); int layerObj_removeMetaData(layerObj *self, char *name); char *layerObj_getWMSFeatureInfoURL(layerObj *self, mapObj *map, diff --git a/mapscript/python/pyextend.i b/mapscript/python/pyextend.i index 4a860ab8cc..748851cd32 100644 --- a/mapscript/python/pyextend.i +++ b/mapscript/python/pyextend.i @@ -166,69 +166,69 @@ def fromstring(data, mappath=None): @property def __geo_interface__(self): - - bounds = self.bounds - ms_geom_type = self.type - - # see https://tools.ietf.org/html/rfc7946 for GeoJSON types - - if ms_geom_type == MS_SHAPE_POINT or ms_geom_type == MS_SHP_POINTZ or ms_geom_type == MS_SHP_POINTM: - geom_type = "Point" - elif ms_geom_type == MS_SHP_MULTIPOINTZ or ms_geom_type == MS_SHP_MULTIPOINTM: - geom_type = "MultiPoint" - elif ms_geom_type == MS_SHAPE_LINE or ms_geom_type == MS_SHP_ARCZ or ms_geom_type == MS_SHP_ARCM: - if self.numlines == 1: - geom_type = "LineString" - else: - geom_type = "MultiLineString" - elif ms_geom_type == MS_SHAPE_POLYGON or ms_geom_type == MS_SHP_POLYGONZ or ms_geom_type == MS_SHP_POLYGONM: - if self.numlines == 1: - geom_type = "Polygon" - else: - geom_type = "MultiPolygon" - elif ms_geom_type == MS_SHAPE_NULL: - return None - else: - raise TypeError("Shape type {} not supported".format(geom_type)) - - properties = {} - coords = [] - - # property names are stored at the layer level - # https://github.com/mapserver/mapserver/issues/130 - - property_values = [self.getValue(idx) for idx in range(0, self.numvalues)] - - if hasattr(self, "_item_definitions"): - property_names, property_types = zip(*self._item_definitions) - property_values = self._convert_item_values(property_values, property_types) - else: - property_names = [str(idx) for idx in range(0, self.numvalues)] - - properties = dict(zip(property_names, property_values)) - - for idx in range(0, self.numlines): - line = self.get(idx) - geom = line.__geo_interface__ - coords.append(geom["coordinates"]) - - return { - "type": "Feature", - "bbox": (bounds.minx, bounds.miny, bounds.maxx, bounds.maxy), - "properties": properties, - "geometry": { - "type": geom_type, - "coordinates": coords - } + + bounds = self.bounds + ms_geom_type = self.type + + # see https://tools.ietf.org/html/rfc7946 for GeoJSON types + + if ms_geom_type == MS_SHAPE_POINT or ms_geom_type == MS_SHP_POINTZ or ms_geom_type == MS_SHP_POINTM: + geom_type = "Point" + elif ms_geom_type == MS_SHP_MULTIPOINTZ or ms_geom_type == MS_SHP_MULTIPOINTM: + geom_type = "MultiPoint" + elif ms_geom_type == MS_SHAPE_LINE or ms_geom_type == MS_SHP_ARCZ or ms_geom_type == MS_SHP_ARCM: + if self.numlines == 1: + geom_type = "LineString" + else: + geom_type = "MultiLineString" + elif ms_geom_type == MS_SHAPE_POLYGON or ms_geom_type == MS_SHP_POLYGONZ or ms_geom_type == MS_SHP_POLYGONM: + if self.numlines == 1: + geom_type = "Polygon" + else: + geom_type = "MultiPolygon" + elif ms_geom_type == MS_SHAPE_NULL: + return None + else: + raise TypeError("Shape type {} not supported".format(geom_type)) + + properties = {} + coords = [] + + # property names are stored at the layer level + # https://github.com/mapserver/mapserver/issues/130 + + property_values = [self.getValue(idx) for idx in range(0, self.numvalues)] + + if hasattr(self, "_item_definitions"): + property_names, property_types = zip(*self._item_definitions) + property_values = self._convert_item_values(property_values, property_types) + else: + property_names = [str(idx) for idx in range(0, self.numvalues)] + + properties = dict(zip(property_names, property_values)) + + for idx in range(0, self.numlines): + line = self.get(idx) + geom = line.__geo_interface__ + coords.append(geom["coordinates"]) + + return { + "type": "Feature", + "bbox": (bounds.minx, bounds.miny, bounds.maxx, bounds.maxy), + "properties": properties, + "geometry": { + "type": geom_type, + "coordinates": coords + } } - def getItemDefinitions(self): - return self._item_definitions - - def setItemDefinitions(self, item_definitions): + def getItemDefinitions(self): + return self._item_definitions + + def setItemDefinitions(self, item_definitions): self._item_definitions = item_definitions - __swig_getmethods__["itemdefinitions"] = getItemDefinitions + __swig_getmethods__["itemdefinitions"] = getItemDefinitions __swig_setmethods__["itemdefinitions"] = setItemDefinitions %} @@ -300,18 +300,18 @@ def fromstring(data, mappath=None): %pythoncode %{ - def getItemDefinitions(self): - """ - **Python MapScript only** - - Return item (field) names and their types if available. - Field types are specified using GML metadata and can be one of the following: - - ``Integer|Long|Real|Character|Date|Boolean`` - - """ - item_names = [self.getItem(idx) for idx in range(0, self.numitems)] - item_types = [self.getItemType(idx) for idx in range(0, self.numitems)] + def getItemDefinitions(self): + """ + **Python MapScript only** + + Return item (field) names and their types if available. + Field types are specified using GML metadata and can be one of the following: + + ``Integer|Long|Real|Character|Date|Boolean`` + + """ + item_names = [self.getItem(idx) for idx in range(0, self.numitems)] + item_types = [self.getItemType(idx) for idx in range(0, self.numitems)] return zip(item_names, item_types) %} @@ -336,6 +336,7 @@ def fromstring(data, mappath=None): int imgsize; PyObject *noerr; int retval=MS_FAILURE; + rendererVTableObj *renderer = NULL; /* Return immediately if image driver is not GD */ if ( !MS_RENDERER_PLUGIN(self->format) ) diff --git a/mapserver.h b/mapserver.h index e78bc211e7..d6b5865253 100644 --- a/mapserver.h +++ b/mapserver.h @@ -1025,8 +1025,6 @@ extern "C" { #ifndef SWIG attributeBindingObj bindings[MS_STYLE_BINDING_LENGTH]; int numbindings; - expressionObj exprBindings[MS_STYLE_BINDING_LENGTH]; - int nexprbindings; #endif }; @@ -1131,8 +1129,6 @@ extern "C" { #ifndef SWIG attributeBindingObj bindings[MS_LABEL_BINDING_LENGTH]; int numbindings; - expressionObj exprBindings[MS_LABEL_BINDING_LENGTH]; - int nexprbindings; #endif labelLeaderObj *leader; @@ -2675,7 +2671,6 @@ void msPopulateTextSymbolForLabelAndString(textSymbolObj *ts, labelObj *l, char MS_DLL_EXPORT int msAdjustImage(rectObj rect, int *width, int *height); MS_DLL_EXPORT char *msEvalTextExpression(expressionObj *expr, shapeObj *shape); MS_DLL_EXPORT char *msEvalTextExpressionJSonEscape(expressionObj *expr, shapeObj *shape); - MS_DLL_EXPORT double msEvalDoubleExpression(expressionObj *expr, shapeObj *shape); MS_DLL_EXPORT double msAdjustExtent(rectObj *rect, int width, int height); MS_DLL_EXPORT int msConstrainExtent(rectObj *bounds, rectObj *rect, double overlay); MS_DLL_EXPORT int *msGetLayersIndexByGroup(mapObj *map, char *groupname, int *nCount); diff --git a/maputil.c b/maputil.c index 6438b07859..23014bad31 100644 --- a/maputil.c +++ b/maputil.c @@ -71,21 +71,21 @@ int msScaleInBounds(double scale, double minscale, double maxscale) /* ** Helper functions to convert from strings to other types or objects. */ -static int bindIntegerAttribute(int *attribute, const char *value) +static int bindIntegerAttribute(int *attribute, char *value) { if(!value || strlen(value) == 0) return MS_FAILURE; *attribute = MS_NINT(atof(value)); /*use atof instead of atoi as a fix for bug 2394*/ return MS_SUCCESS; } -static int bindDoubleAttribute(double *attribute, const char *value) +static int bindDoubleAttribute(double *attribute, char *value) { if(!value || strlen(value) == 0) return MS_FAILURE; *attribute = atof(value); return MS_SUCCESS; } -static int bindColorAttribute(colorObj *attribute, const char *value) +static int bindColorAttribute(colorObj *attribute, char *value) { int len; @@ -182,68 +182,19 @@ static void bindStyle(layerObj *layer, shapeObj *shape, styleObj *style, int dra style->polaroffsetangle = 0; bindDoubleAttribute(&style->polaroffsetangle, shape->values[style->bindings[MS_STYLE_BINDING_POLAROFFSET_ANGLE].index]); } - } - if (style->nexprbindings > 0) - { - if (style->exprBindings[MS_STYLE_BINDING_OFFSET_X].type == MS_EXPRESSION) - { - style->offsetx = msEvalDoubleExpression( - &(style->exprBindings[MS_STYLE_BINDING_OFFSET_X]), - shape); - } - if (style->exprBindings[MS_STYLE_BINDING_OFFSET_Y].type == MS_EXPRESSION) - { - style->offsety = msEvalDoubleExpression( - &(style->exprBindings[MS_STYLE_BINDING_OFFSET_Y]), - shape); - } - if (style->exprBindings[MS_STYLE_BINDING_ANGLE].type == MS_EXPRESSION) - { - style->angle = msEvalDoubleExpression( - &(style->exprBindings[MS_STYLE_BINDING_ANGLE]), - shape); - } - if (style->exprBindings[MS_STYLE_BINDING_SIZE].type == MS_EXPRESSION) - { - style->size = msEvalDoubleExpression( - &(style->exprBindings[MS_STYLE_BINDING_SIZE]), - shape); - } - if (style->exprBindings[MS_STYLE_BINDING_WIDTH].type == MS_EXPRESSION) - { - style->width = msEvalDoubleExpression( - &(style->exprBindings[MS_STYLE_BINDING_WIDTH]), - shape); - } - if (style->exprBindings[MS_STYLE_BINDING_OPACITY].type == MS_EXPRESSION) - { - style->opacity = 100 * msEvalDoubleExpression( - &(style->exprBindings[MS_STYLE_BINDING_OPACITY]), - shape); - } - if (style->exprBindings[MS_STYLE_BINDING_OUTLINECOLOR].type == MS_EXPRESSION) - { - char* txt = msEvalTextExpression( - &(style->exprBindings[MS_STYLE_BINDING_OUTLINECOLOR]), shape); - bindColorAttribute(&style->outlinecolor, txt); - msFree(txt); - } - if (style->exprBindings[MS_STYLE_BINDING_COLOR].type == MS_EXPRESSION) - { - char* txt = msEvalTextExpression( - &(style->exprBindings[MS_STYLE_BINDING_COLOR]), shape); - bindColorAttribute(&style->color, txt); - msFree(txt); - } - } - if(style->opacity < 100 || style->color.alpha != 255 ) { - int alpha; - alpha = MS_NINT(style->opacity*2.55); - style->color.alpha = alpha; - style->outlinecolor.alpha = alpha; - style->backgroundcolor.alpha = alpha; - style->mincolor.alpha = alpha; - style->maxcolor.alpha = alpha; + if(style->bindings[MS_STYLE_BINDING_OUTLINEWIDTH].index != -1) { + style->outlinewidth = 1; + bindDoubleAttribute(&style->outlinewidth, shape->values[style->bindings[MS_STYLE_BINDING_OUTLINEWIDTH].index]); + } + if(style->opacity < 100 || style->color.alpha != 255 ) { + int alpha; + alpha = MS_NINT(style->opacity*2.55); + style->color.alpha = alpha; + style->outlinecolor.alpha = alpha; + style->backgroundcolor.alpha = alpha; + style->mincolor.alpha = alpha; + style->maxcolor.alpha = alpha; + } } } @@ -328,35 +279,6 @@ static void bindLabel(layerObj *layer, shapeObj *shape, labelObj *label, int dra } } } - if (label->nexprbindings > 0) - { - if (label->exprBindings[MS_LABEL_BINDING_ANGLE].type == MS_EXPRESSION) - { - label->angle = msEvalDoubleExpression( - &(label->exprBindings[MS_LABEL_BINDING_ANGLE]), - shape); - } - if (label->exprBindings[MS_LABEL_BINDING_SIZE].type == MS_EXPRESSION) - { - label->size = msEvalDoubleExpression( - &(label->exprBindings[MS_LABEL_BINDING_SIZE]), - shape); - } - if (label->exprBindings[MS_LABEL_BINDING_COLOR].type == MS_EXPRESSION) - { - char* txt = msEvalTextExpression( - &(label->exprBindings[MS_LABEL_BINDING_COLOR]), shape); - bindColorAttribute(&label->color, txt); - msFree(txt); - } - if (label->exprBindings[MS_LABEL_BINDING_OUTLINECOLOR].type == MS_EXPRESSION) - { - char* txt = msEvalTextExpression( - &(label->exprBindings[MS_LABEL_BINDING_OUTLINECOLOR]), shape); - bindColorAttribute(&label->outlinecolor, txt); - msFree(txt); - } - } } /* @@ -773,27 +695,6 @@ char *msEvalTextExpression(expressionObj *expr, shapeObj *shape) return msEvalTextExpressionInternal(expr, shape, MS_FALSE); } -double msEvalDoubleExpression(expressionObj *expression, shapeObj *shape) -{ - double value; - int status; - parseObj p; - p.shape = shape; - p.expr = expression; - p.expr->curtoken = p.expr->tokens; /* reset */ - p.type = MS_PARSE_TYPE_STRING; - status = yyparse(&p); - if (status != 0) { - msSetError(MS_PARSEERR, "Failed to parse expression: %s", - "bindStyle", expression->string); - value = 0.0; - } else { - value = atof(p.result.strval); - msFree(p.result.strval); - } - return value; -} - char* msShapeGetLabelAnnotation(layerObj *layer, shapeObj *shape, labelObj *lbl) { assert(shape && lbl); if(lbl->text.string) { diff --git a/mapwfs.c b/mapwfs.c index 8bd55881bb..7b5acff5dd 100644 --- a/mapwfs.c +++ b/mapwfs.c @@ -3976,17 +3976,6 @@ int msWFSGetFeature(mapObj *map, wfsParamsObj *paramsObj, cgiRequestObj *req, mapserv->request = req; map->querymap.status = MS_FALSE; - if( nMatchingFeatures >= 0 ) - { - char szMatchingFeatures[12]; - sprintf(szMatchingFeatures, "%d", nMatchingFeatures); - msSetOutputFormatOption( psFormat, "_matching_features_", - szMatchingFeatures); - } - else - { - msSetOutputFormatOption( psFormat, "_matching_features_", ""); - } status = msReturnTemplateQuery( mapserv, psFormat->name, NULL ); mapserv->request = NULL; diff --git a/msautotest/.gitignore b/msautotest/.gitignore index e75b3f4129..0c11eebb09 100644 --- a/msautotest/.gitignore +++ b/msautotest/.gitignore @@ -4,4 +4,3 @@ misc/result renderers/result wxs/result mspython/result -sld/result diff --git a/msautotest/gdal/expected/tileindexmixedsrs.png b/msautotest/gdal/expected/tileindexmixedsrs.png index 2229782e01..adafc9b02f 100644 Binary files a/msautotest/gdal/expected/tileindexmixedsrs.png and b/msautotest/gdal/expected/tileindexmixedsrs.png differ diff --git a/msautotest/gdal/expected/tileindexmixedsrs2.png b/msautotest/gdal/expected/tileindexmixedsrs2.png index 2229782e01..adafc9b02f 100644 Binary files a/msautotest/gdal/expected/tileindexmixedsrs2.png and b/msautotest/gdal/expected/tileindexmixedsrs2.png differ diff --git a/msautotest/gdal/expected/tileindexmixedsrs3.png b/msautotest/gdal/expected/tileindexmixedsrs3.png index 2229782e01..adafc9b02f 100644 Binary files a/msautotest/gdal/expected/tileindexmixedsrs3.png and b/msautotest/gdal/expected/tileindexmixedsrs3.png differ diff --git a/msautotest/gdal/expected/tileindexmixedsrs4.png b/msautotest/gdal/expected/tileindexmixedsrs4.png index 2229782e01..adafc9b02f 100644 Binary files a/msautotest/gdal/expected/tileindexmixedsrs4.png and b/msautotest/gdal/expected/tileindexmixedsrs4.png differ diff --git a/msautotest/gdal/tileindexmixedsrs.map b/msautotest/gdal/tileindexmixedsrs.map index de2770a814..d48e348687 100644 --- a/msautotest/gdal/tileindexmixedsrs.map +++ b/msautotest/gdal/tileindexmixedsrs.map @@ -23,7 +23,7 @@ EXTENT 440720.000 3745320.000 446720.000 3751320.000 IMAGECOLOR 0 0 0 PROJECTION - "+init=epsg:26711" + "+proj=utm +zone=11 +datum=NAD27" END IMAGETYPE PNG8 diff --git a/msautotest/gdal/tileindexmixedsrs2.map b/msautotest/gdal/tileindexmixedsrs2.map index 90bbbbd072..583da4a0cc 100644 --- a/msautotest/gdal/tileindexmixedsrs2.map +++ b/msautotest/gdal/tileindexmixedsrs2.map @@ -11,7 +11,7 @@ EXTENT 440720.000 3745320.000 446720.000 3751320.000 IMAGECOLOR 0 0 0 PROJECTION - "+init=epsg:26711" + "+proj=utm +zone=11 +datum=NAD27" END IMAGETYPE PNG8 diff --git a/msautotest/gdal/tileindexmixedsrs3.map b/msautotest/gdal/tileindexmixedsrs3.map index 4f2c10f479..4624127598 100644 --- a/msautotest/gdal/tileindexmixedsrs3.map +++ b/msautotest/gdal/tileindexmixedsrs3.map @@ -11,7 +11,7 @@ EXTENT 440720.000 3745320.000 446720.000 3751320.000 IMAGECOLOR 0 0 0 PROJECTION - "+init=epsg:26711" + "+proj=utm +zone=11 +datum=NAD27" END IMAGETYPE PNG8 diff --git a/msautotest/gdal/tileindexmixedsrs4.map b/msautotest/gdal/tileindexmixedsrs4.map index 796dda882a..a6bca1fc97 100644 --- a/msautotest/gdal/tileindexmixedsrs4.map +++ b/msautotest/gdal/tileindexmixedsrs4.map @@ -11,7 +11,7 @@ EXTENT 440720.000 3745320.000 446720.000 3751320.000 IMAGECOLOR 0 0 0 PROJECTION - "+init=epsg:26711" + "+proj=utm +zone=11 +datum=NAD27" END IMAGETYPE PNG8 diff --git a/msautotest/sld/arithmetic_line.map b/msautotest/sld/arithmetic_line.map deleted file mode 100644 index 6a7f59e82a..0000000000 --- a/msautotest/sld/arithmetic_line.map +++ /dev/null @@ -1,165 +0,0 @@ -# -# Test LINE -# -# REQUIRES: INPUT=GDAL OUTPUT=PNG SUPPORTS=WMS -# -# -# Three layers are defined, one for each : -# - lline : This is a five pixel wide semi opaque yellow line which draws -# an hexagon roughly around France country -# - lpolygon: This is a semi opaque cyan hexagon with one pixel wide semi -# opaque magenta line roughly around "Centre-Val de Loire" -# region -# - lpoint : This is a semi opaque twenty pixel wide upside down blue star -# with a one pixel wide red line roughly on Lyon city -# All tests shall produce the same image. -# -# -# --- Line with on "stroke-width" -# -# RUN_PARMS: sld_line_literal_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline50.5#FFFF00" > [RESULT_DEMIME] -# -# --- Line with on "stroke-width" -# -# RUN_PARMS: sld_line_propertyname_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=llinew50.5#FFFF00" > [RESULT_DEMIME] -# -# --- Line with on "stroke-width" -# -# RUN_PARMS: sld_line_expression_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=llinew5250.5#FFFF00" > [RESULT_DEMIME] -# -# --- Line with on "stroke-opacity" -# -# RUN_PARMS: sld_line_literal_strokeopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline50.5#FFFF00" > [RESULT_DEMIME] -# -# --- Line with on "stroke-opacity" -# -# RUN_PARMS: sld_line_propertyname_strokeopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline5semiopaque#FFFF00" > [RESULT_DEMIME] -# -# --- Line with on "stroke-opacity" -# -# RUN_PARMS: sld_line_expression_strokeopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline5
semiopaque0.52
#FFFF00
" > [RESULT_DEMIME] -# -# --- Line with on "stroke" -# -# RUN_PARMS: sld_line_literal_stroke.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline50.5#FFFF00" > [RESULT_DEMIME] -# -# --- Line with on "stroke" -# -# RUN_PARMS: sld_line_propertyname_stroke.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline50.5yellow" > [RESULT_DEMIME] -# - - - -MAP - -NAME GEOMETRY_LINE -SHAPEPATH ./data -SIZE 300 300 -IMAGECOLOR 100 100 100 -FONTSET "data/fonts.lst" -PROJECTION - "init=epsg:4326" -END -WEB - IMAGEPATH "/tmp/ms_tmp/" - IMAGEURL "/ms_tmp/" - METADATA - "wms_title" "Test SLD" - "wms_onlineresource" "http://localhost/path/to/wms_simple?" - "wms_srs" "EPSG:4326" - "ows_schemas_location" "http://ogc.dmsolutions.ca" - "ows_enable_request" "*" - "ows_sld_enabled" "true" - END -END - -LAYER - NAME lline - DATA hexagon - TYPE LINE - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 5 - OPACITY 50 - COLOR 255 255 0 - END - END -END - -LAYER - NAME lpolygon - DATA inner - TYPE POLYGON - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 1 - OPACITY 50 - COLOR 0 255 255 - OUTLINECOLOR 255 0 255 - END - END -END - -LAYER - NAME lpoint - DATA plot - TYPE POINT - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - COLOR 0 0 255 - OUTLINECOLOR 255 0 0 - OPACITY 50 - SYMBOL "star" - SIZE 20 - ANGLE 180 - OFFSET 2 2 - END - LABEL - TEXT "[name]" - COLOR 255 255 255 - OUTLINECOLOR 0 255 0 - OUTLINEWIDTH 2 - TYPE TRUETYPE - FONT vera-bold - SIZE 12 - OFFSET 2 20 - ANGLE 15 - END - END -END - -SYMBOL - NAME "circle" - TYPE ellipse - FILLED true - POINTS - 1 1 - END -END - -SYMBOL - NAME "star" - TYPE vector - FILLED true - POINTS - 0 0.375 - 0.35 0.375 - 0.5 0 - 0.65 0.375 - 1 0.375 - 0.75 0.625 - 0.875 1 - 0.5 0.75 - 0.125 1 - 0.25 0.625 - END -END - -END diff --git a/msautotest/sld/arithmetic_point.map b/msautotest/sld/arithmetic_point.map deleted file mode 100644 index 0c790d0987..0000000000 --- a/msautotest/sld/arithmetic_point.map +++ /dev/null @@ -1,229 +0,0 @@ -# -# Test POINT -# -# REQUIRES: INPUT=GDAL OUTPUT=PNG SUPPORTS=WMS -# -# -# Three layers are defined, one for each : -# - lline : This is a five pixel wide semi opaque yellow line which draws -# an hexagon roughly around France country -# - lpolygon: This is a semi opaque cyan hexagon with one pixel wide semi -# opaque magenta line roughly around "Centre-Val de Loire" -# region -# - lpoint : This is a semi opaque twenty pixel wide upside down blue star -# with a one pixel wide red line roughly on Lyon city -# All tests shall produce the same image. -# -# -# --- Point (Mark) with on "stroke-width" -# -# RUN_PARMS: sld_point_literal_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on "stroke-width" -# -# RUN_PARMS: sld_point_propertyname_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF00001w1#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on "stroke-width" -# -# RUN_PARMS: sld_point_expression_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF00001
w1w12
#0000FF0.1
20180220.5
verabold12#FFFFFF2200.50.5152#00FF00
" > [RESULT_DEMIME] -# -# --- Point (Mark) with on "stroke-opacity" -# -# --- Point (Mark) with on "stroke-opacity" -# -# --- Point (Mark) with on "stroke" -# -# RUN_PARMS: sld_point_literal_stroke.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on "stroke" -# -# RUN_PARMS: sld_point_propertyname_stroke.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstarred11#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on "fill-opacity" -# -# --- Point (Mark) with on "fill-opacity" -# -# --- Point (Mark) with on "fill" -# -# RUN_PARMS: sld_point_literal_fill.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on "fill" -# -# RUN_PARMS: sld_point_propertyname_fill.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011blue0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_literal_opacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_propertyname_opacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.12018022semiopaqueverabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_expression_opacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.1201802210semiopaque4.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_literal_size.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_propertyname_size.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.1s20180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_expression_size.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.12s2010180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_literal_rotation.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_propertyname_rotation.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120r180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_expression_rotation.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120540
r180semiopaque
220.5
verabold12#FFFFFF2200.50.5152#00FF00
" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_literal_displacementx.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_propertyname_displacementx.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180x220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_expression_displacementx.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180-1
6x2
2
0.5
verabold12#FFFFFF2200.50.5152#00FF00
" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_literal_displacementy.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_propertyname_displacementy.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.1201802y20.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Point (Mark) with on -# -# RUN_PARMS: sld_point_expression_displacementy.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.1201802
10y26.0
0.5
verabold12#FFFFFF2200.50.5152#00FF00
" > [RESULT_DEMIME] -# - - - -MAP - -NAME GEOMETRY_POINT -SHAPEPATH ./data -SIZE 300 300 -IMAGECOLOR 100 100 100 -FONTSET "data/fonts.lst" -PROJECTION - "init=epsg:4326" -END -WEB - IMAGEPATH "/tmp/ms_tmp/" - IMAGEURL "/ms_tmp/" - METADATA - "wms_title" "Test SLD" - "wms_onlineresource" "http://localhost/path/to/wms_simple?" - "wms_srs" "EPSG:4326" - "ows_schemas_location" "http://ogc.dmsolutions.ca" - "ows_enable_request" "*" - "ows_sld_enabled" "true" - END -END - -LAYER - NAME lline - DATA hexagon - TYPE LINE - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 5 - OPACITY 50 - COLOR 255 255 0 - END - END -END - -LAYER - NAME lpolygon - DATA inner - TYPE POLYGON - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 1 - OPACITY 50 - COLOR 0 255 255 - OUTLINECOLOR 255 0 255 - END - END -END - -LAYER - NAME lpoint - DATA plot - TYPE POINT - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - COLOR 0 0 255 - OUTLINECOLOR 255 0 0 - OPACITY 50 - SYMBOL "star" - SIZE 20 - ANGLE 180 - OFFSET 2 2 - END - LABEL - TEXT "[name]" - COLOR 255 255 255 - OUTLINECOLOR 0 255 0 - OUTLINEWIDTH 2 - TYPE TRUETYPE - FONT vera-bold - SIZE 12 - OFFSET 2 20 - ANGLE 15 - END - END -END - -SYMBOL - NAME "circle" - TYPE ellipse - FILLED true - POINTS - 1 1 - END -END - -SYMBOL - NAME "star" - TYPE vector - FILLED true - POINTS - 0 0.375 - 0.35 0.375 - 0.5 0 - 0.65 0.375 - 1 0.375 - 0.75 0.625 - 0.875 1 - 0.5 0.75 - 0.125 1 - 0.25 0.625 - END -END - -END diff --git a/msautotest/sld/arithmetic_polygon.map b/msautotest/sld/arithmetic_polygon.map deleted file mode 100644 index 7cf2e9a216..0000000000 --- a/msautotest/sld/arithmetic_polygon.map +++ /dev/null @@ -1,185 +0,0 @@ -# -# Test POLYGON -# -# REQUIRES: INPUT=GDAL OUTPUT=PNG SUPPORTS=WMS -# -# -# Three layers are defined, one for each : -# - lline : This is a five pixel wide semi opaque yellow line which draws -# an hexagon roughly around France country -# - lpolygon: This is a semi opaque cyan hexagon with one pixel wide semi -# opaque magenta line roughly around "Centre-Val de Loire" -# region -# - lpoint : This is a semi opaque twenty pixel wide upside down blue star -# with a one pixel wide red line roughly on Lyon city -# All tests shall produce the same image. -# -# -# --- Polygon with on "stroke-width" -# -# RUN_PARMS: sld_polygon_literal_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5#FF00FF0.5#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "stroke-width" -# -# RUN_PARMS: sld_polygon_propertyname_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygonw10.5#FF00FF0.5#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "stroke-width" -# -# RUN_PARMS: sld_polygon_expression_strokewidth.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon0.75
w14
0.5#FF00FF
0.5#00FFFF
" > [RESULT_DEMIME] -# -# --- Polygon with on "stroke-opacity" -# -# RUN_PARMS: sld_polygon_literal_strokeopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5#FF00FF0.5#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "stroke-opacity" -# -# RUN_PARMS: sld_polygon_propertyname_strokeopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon1semiopaque#FF00FF0.5#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "stroke-opacity" -# -# RUN_PARMS: sld_polygon_expression_strokeopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon114.5
7semiopaque
#FF00FF
0.5#00FFFF
" > [RESULT_DEMIME] -# -# --- Polygon with on "stroke" -# -# RUN_PARMS: sld_polygon_literal_stroke.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5#FF00FF0.5#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "stroke" -# -# RUN_PARMS: sld_polygon_propertyname_stroke.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5magenta0.5#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "fill-opacity" -# -# RUN_PARMS: sld_polygon_literal_fillopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5#FF00FF0.5#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "fill-opacity" -# -# RUN_PARMS: sld_polygon_propertyname_fillopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5#FF00FFsemiopaque#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "fill-opacity" -# -# RUN_PARMS: sld_polygon_expression_fillopacity.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5#FF00FF0.50.5semiopaque#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "fill" -# -# RUN_PARMS: sld_polygon_literal_fill.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5#FF00FF0.5#00FFFF" > [RESULT_DEMIME] -# -# --- Polygon with on "fill" -# -# RUN_PARMS: sld_polygon_propertyname_fill.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpolygon10.5#FF00FF0.5cyan" > [RESULT_DEMIME] -# - - - -MAP - -NAME GEOMETRY_POLYGON -SHAPEPATH ./data -SIZE 300 300 -IMAGECOLOR 100 100 100 -FONTSET "data/fonts.lst" -PROJECTION - "init=epsg:4326" -END -WEB - IMAGEPATH "/tmp/ms_tmp/" - IMAGEURL "/ms_tmp/" - METADATA - "wms_title" "Test SLD" - "wms_onlineresource" "http://localhost/path/to/wms_simple?" - "wms_srs" "EPSG:4326" - "ows_schemas_location" "http://ogc.dmsolutions.ca" - "ows_enable_request" "*" - "ows_sld_enabled" "true" - END -END - -LAYER - NAME lline - DATA hexagon - TYPE LINE - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 5 - OPACITY 50 - COLOR 255 255 0 - END - END -END - -LAYER - NAME lpolygon - DATA inner - TYPE POLYGON - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 1 - OPACITY 50 - COLOR 0 255 255 - OUTLINECOLOR 255 0 255 - END - END -END - -LAYER - NAME lpoint - DATA plot - TYPE POINT - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - COLOR 0 0 255 - OUTLINECOLOR 255 0 0 - OPACITY 50 - SYMBOL "star" - SIZE 20 - ANGLE 180 - OFFSET 2 2 - END - LABEL - TEXT "[name]" - COLOR 255 255 255 - OUTLINECOLOR 0 255 0 - OUTLINEWIDTH 2 - TYPE TRUETYPE - FONT vera-bold - SIZE 12 - OFFSET 2 20 - ANGLE 15 - END - END -END - -SYMBOL - NAME "circle" - TYPE ellipse - FILLED true - POINTS - 1 1 - END -END - -SYMBOL - NAME "star" - TYPE vector - FILLED true - POINTS - 0 0.375 - 0.35 0.375 - 0.5 0 - 0.65 0.375 - 1 0.375 - 0.75 0.625 - 0.875 1 - 0.5 0.75 - 0.125 1 - 0.25 0.625 - END -END - -END diff --git a/msautotest/sld/arithmetic_text.map b/msautotest/sld/arithmetic_text.map deleted file mode 100644 index fa72ad9962..0000000000 --- a/msautotest/sld/arithmetic_text.map +++ /dev/null @@ -1,192 +0,0 @@ -# -# Test TEXT -# -# REQUIRES: INPUT=GDAL OUTPUT=PNG SUPPORTS=WMS -# -# -# Three layers are defined, one for each : -# - lline : This is a five pixel wide semi opaque yellow line which draws -# an hexagon roughly around France country -# - lpolygon: This is a semi opaque cyan hexagon with one pixel wide semi -# opaque magenta line roughly around "Centre-Val de Loire" -# region -# - lpoint : This is a semi opaque twenty pixel wide upside down blue star -# with a one pixel wide red line roughly on Lyon city -# All tests shall produce the same image. -# -# -# --- Text with on "font-size" -# -# RUN_PARMS: sld_text_literal_fontsize.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Text with on "font-size" -# -# RUN_PARMS: sld_text_propertyname_fontsize.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabolds12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Text with on "font-size" -# -# RUN_PARMS: sld_text_expression_fontsize.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold
s12152.25
#FFFFFF2200.50.5152#00FF00
" > [RESULT_DEMIME] -# -# --- Text with on "font-family" -# --- Text with on "font-family" -# --- Text with on "font-style" -# --- Text with on "font-style" -# --- Text with on "font-weight" -# --- Text with on "font-weight" -# -# --- Text with on -# -# RUN_PARMS: sld_text_literal_rotation.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Text with on -# -# RUN_PARMS: sld_text_propertyname_rotation.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5a152#00FF00" > [RESULT_DEMIME] -# -# --- Text with on -# -# RUN_PARMS: sld_text_expression_rotation.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.50.545a152#00FF00" > [RESULT_DEMIME] -# -# --- Text with on -# --- Text with on -# --- Text with on -# --- Text with on -# --- Text with on -# --- Text with on -# --- Text with on -# --- Text with on -# -# --- Text with on "fill" -# -# RUN_PARMS: sld_text_literal_fill.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Text with on "fill" -# -# RUN_PARMS: sld_text_propertyname_fill.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12white2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Text with on -# --- Text with on -# -# --- Text with on "fill" -# -# RUN_PARMS: sld_text_literal_halofill.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# -# --- Text with on "fill" -# -# RUN_PARMS: sld_text_propertyname_halofill.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152green" > [RESULT_DEMIME] -# - - - -MAP - -NAME GEOMETRY_REFERENCE -SHAPEPATH ./data -SIZE 300 300 -IMAGECOLOR 100 100 100 -FONTSET "data/fonts.lst" -PROJECTION - "init=epsg:4326" -END -WEB - IMAGEPATH "/tmp/ms_tmp/" - IMAGEURL "/ms_tmp/" - METADATA - "wms_title" "Test SLD" - "wms_onlineresource" "http://localhost/path/to/wms_simple?" - "wms_srs" "EPSG:4326" - "ows_schemas_location" "http://ogc.dmsolutions.ca" - "ows_enable_request" "*" - "ows_sld_enabled" "true" - END -END - -LAYER - NAME lline - DATA hexagon - TYPE LINE - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 5 - OPACITY 50 - COLOR 255 255 0 - END - END -END - -LAYER - NAME lpolygon - DATA inner - TYPE POLYGON - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 1 - OPACITY 50 - COLOR 0 255 255 - OUTLINECOLOR 255 0 255 - END - END -END - -LAYER - NAME lpoint - DATA plot - TYPE POINT - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - COLOR 0 0 255 - OUTLINECOLOR 255 0 0 - OPACITY 50 - SYMBOL "star" - SIZE 20 - ANGLE 180 - OFFSET 2 2 - END - LABEL - TEXT "[name]" - COLOR 255 255 255 - OUTLINECOLOR 0 255 0 - OUTLINEWIDTH 2 - TYPE TRUETYPE - FONT vera-bold - SIZE 12 - OFFSET 2 20 - ANGLE 15 - END - END -END - -SYMBOL - NAME "circle" - TYPE ellipse - FILLED true - POINTS - 1 1 - END -END - -SYMBOL - NAME "star" - TYPE vector - FILLED true - POINTS - 0 0.375 - 0.35 0.375 - 0.5 0 - 0.65 0.375 - 1 0.375 - 0.75 0.625 - 0.875 1 - 0.5 0.75 - 0.125 1 - 0.25 0.625 - END -END - -END diff --git a/msautotest/sld/base.map b/msautotest/sld/base.map deleted file mode 100644 index 3efb3b894b..0000000000 --- a/msautotest/sld/base.map +++ /dev/null @@ -1,250 +0,0 @@ -# -# Test REFERENCE -# -# REQUIRES: INPUT=GDAL OUTPUT=PNG SUPPORTS=WMS -# -# -# Three layers are defined, one for each : -# - lline : This is a five pixel wide semi opaque yellow line which draws -# an hexagon roughly around France country -# - lpolygon: This is a semi opaque cyan hexagon with one pixel wide semi -# opaque magenta line roughly around "Centre-Val de Loire" -# region -# - lpoint : This is a semi opaque twenty pixel wide upside down blue star -# with a one pixel wide red line roughly on Lyon city -# All tests shall produce the same image. -# -# -# --- Reference output rendered with MapFile only -# -# RUN_PARMS: base_mapfile.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint" > [RESULT_DEMIME] -# -# -# --- Reference output rendered with SLD -# -# -# -# lline -# -# -# -# -# -# 5 -# 0.5 -# #FFFF00 -# -# -# -# -# -# -# -# -# lpolygon -# -# -# -# -# -# 1 -# 0.5 -# #FF00FF -# -# -# 0.5 -# #00FFFF -# -# -# -# -# -# -# -# -# lpoint -# -# -# -# -# -# -# star -# -# #FF0000 -# 1 -# 1 -# -# -# #0000FF -# 0.1 -# -# -# 20 -# 180 -# -# 2 -# 2 -# -# 0.5 -# -# -# -# -# -# vera -# bold -# 12 -# -# -# #FFFFFF -# -# -# -# -# 2 -# 20 -# -# -# -# 0.5 -# 0.5 -# -# 15 -# -# -# 2 -# -# #00FF00 -# -# -# -# -# -# -# -# -# -# -# RUN_PARMS: base_sldbody.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline50.5#FFFF00lpolygon10.5#FF00FF0.5#00FFFFlpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# - - - -MAP - -NAME GEOMETRY_REFERENCE -SIZE 300 300 -IMAGECOLOR 100 100 100 -FONTSET "data/fonts.lst" -PROJECTION - "init=epsg:4326" -END -WEB - IMAGEPATH "/tmp/ms_tmp/" - IMAGEURL "/ms_tmp/" - METADATA - "wms_title" "Test SLD" - "wms_onlineresource" "http://localhost/path/to/wms_simple?" - "wms_srs" "EPSG:4326" - "ows_schemas_location" "http://ogc.dmsolutions.ca" - "ows_enable_request" "*" - "ows_sld_enabled" "true" - END -END - -LAYER - NAME lline - CONNECTIONTYPE OGR - CONNECTION data/hexagon.json - TYPE LINE - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 5 - OPACITY 50 - COLOR 255 255 0 - END - END -END - -LAYER - NAME lpolygon - CONNECTIONTYPE OGR - CONNECTION data/inner.json - TYPE POLYGON - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 1 - OPACITY 50 - COLOR 0 255 255 - OUTLINECOLOR 255 0 255 - END - END -END - -LAYER - NAME lpoint - CONNECTIONTYPE OGR - CONNECTION data/plot.json - TYPE POINT - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - COLOR 0 0 255 - OUTLINECOLOR 255 0 0 - OPACITY 50 - SYMBOL "star" - SIZE 20 - ANGLE 180 - OFFSET 2 2 - END - LABEL - TEXT "[name]" - COLOR 255 255 255 - OUTLINECOLOR 0 255 0 - OUTLINEWIDTH 2 - TYPE TRUETYPE - FONT vera-bold - SIZE 12 - OFFSET 2 20 - ANGLE 15 - END - END -END - -SYMBOL - NAME "circle" - TYPE ellipse - FILLED true - POINTS - 1 1 - END -END - -SYMBOL - NAME "star" - TYPE vector - FILLED true - POINTS - 0 0.375 - 0.35 0.375 - 0.5 0 - 0.65 0.375 - 1 0.375 - 0.75 0.625 - 0.875 1 - 0.5 0.75 - 0.125 1 - 0.25 0.625 - END -END - -END diff --git a/msautotest/sld/data/fonts.lst b/msautotest/sld/data/fonts.lst deleted file mode 100644 index de4f68859d..0000000000 --- a/msautotest/sld/data/fonts.lst +++ /dev/null @@ -1,5 +0,0 @@ -lucida ../../misc/data/LucidaBrightRegular.ttf -vera ../../php/maps/etc/vera/Vera.ttf -vera-bold ../../php/maps/etc/vera/VeraBd.ttf -dejavu ../../renderers/data/DejaVuSansCondensed.ttf -vlgothic ../../renderers/data/VL-Gothic-Regular.ttf diff --git a/msautotest/sld/data/hexagon.dbf b/msautotest/sld/data/hexagon.dbf deleted file mode 100644 index d174560370..0000000000 Binary files a/msautotest/sld/data/hexagon.dbf and /dev/null differ diff --git a/msautotest/sld/data/hexagon.json b/msautotest/sld/data/hexagon.json deleted file mode 100644 index 6d5162b151..0000000000 --- a/msautotest/sld/data/hexagon.json +++ /dev/null @@ -1,12 +0,0 @@ -{ "type": "FeatureCollection", - "features": [ { - "type": "Feature", - "properties": { - "w5": 5, - "yellow": "#FFFF00", - "semiopaque": 0.5, - "name": "Hexagon" }, - "geometry": { - "type": "LineString", - "coordinates": [ [ 2.4, 51.1 ], [ -4.6, 48.4 ], [ -1.7, 43.3 ], - [ 3.1, 42.5 ], [ 7.6, 43.7 ], [ 8.1, 49 ], [ 2.4, 51.1 ] ] } } ] } diff --git a/msautotest/sld/data/hexagon.prj b/msautotest/sld/data/hexagon.prj deleted file mode 100644 index a30c00a55d..0000000000 --- a/msautotest/sld/data/hexagon.prj +++ /dev/null @@ -1 +0,0 @@ -GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] \ No newline at end of file diff --git a/msautotest/sld/data/hexagon.shp b/msautotest/sld/data/hexagon.shp deleted file mode 100644 index 2ee24f54f0..0000000000 Binary files a/msautotest/sld/data/hexagon.shp and /dev/null differ diff --git a/msautotest/sld/data/hexagon.shx b/msautotest/sld/data/hexagon.shx deleted file mode 100644 index 1638eec67f..0000000000 Binary files a/msautotest/sld/data/hexagon.shx and /dev/null differ diff --git a/msautotest/sld/data/inner.dbf b/msautotest/sld/data/inner.dbf deleted file mode 100644 index 03fcdb8bcd..0000000000 Binary files a/msautotest/sld/data/inner.dbf and /dev/null differ diff --git a/msautotest/sld/data/inner.json b/msautotest/sld/data/inner.json deleted file mode 100644 index a411024cf2..0000000000 --- a/msautotest/sld/data/inner.json +++ /dev/null @@ -1,13 +0,0 @@ -{ "type": "FeatureCollection", - "features": [ { - "type": "Feature", - "properties": { - "w1": 1, - "cyan": "#00FFFF", - "magenta": "#FF00FF", - "semiopaque": 0.5, - "name": "Inner" }, - "geometry": { - "type": "Polygon", - "coordinates": [ [ [ 1.5, 49.0 ], [ 0.8, 48.2 ], [ 0.1, 47.1 ], - [ 2.2, 46.4 ], [ 3.2, 46.8 ], [ 3.0, 48.2 ], [ 1.5, 49.0 ] ] ] } } ] } diff --git a/msautotest/sld/data/inner.prj b/msautotest/sld/data/inner.prj deleted file mode 100644 index a30c00a55d..0000000000 --- a/msautotest/sld/data/inner.prj +++ /dev/null @@ -1 +0,0 @@ -GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] \ No newline at end of file diff --git a/msautotest/sld/data/inner.shp b/msautotest/sld/data/inner.shp deleted file mode 100644 index 19790845db..0000000000 Binary files a/msautotest/sld/data/inner.shp and /dev/null differ diff --git a/msautotest/sld/data/inner.shx b/msautotest/sld/data/inner.shx deleted file mode 100644 index 6171f8bcaa..0000000000 Binary files a/msautotest/sld/data/inner.shx and /dev/null differ diff --git a/msautotest/sld/data/plot.dbf b/msautotest/sld/data/plot.dbf deleted file mode 100644 index 515bbc75ec..0000000000 Binary files a/msautotest/sld/data/plot.dbf and /dev/null differ diff --git a/msautotest/sld/data/plot.json b/msautotest/sld/data/plot.json deleted file mode 100644 index e8cf3456ca..0000000000 --- a/msautotest/sld/data/plot.json +++ /dev/null @@ -1,23 +0,0 @@ -{ "type": "FeatureCollection", - "features": [ { - "type": "Feature", - "properties": { - "r2": 2, - "a15": 15.0, - "s12": 12.0, - "x2": 2, - "y2": 2, - "r180": 180.0, - "s20": 20.0, - "blue": "#0000FF", - "red": "#FF0000", - "white": "#FFFFFF", - "green": "#00FF00", - "w1": 1, - "semiopaque": 0.5, - "Property1": "Un", - "Property2": "Deux", - "name": "Plot" }, - "geometry": { - "type": "Point", - "coordinates": [ 4.8, 45.7 ] } } ] } diff --git a/msautotest/sld/data/plot.prj b/msautotest/sld/data/plot.prj deleted file mode 100644 index a30c00a55d..0000000000 --- a/msautotest/sld/data/plot.prj +++ /dev/null @@ -1 +0,0 @@ -GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] \ No newline at end of file diff --git a/msautotest/sld/data/plot.shp b/msautotest/sld/data/plot.shp deleted file mode 100644 index 92c5cb2685..0000000000 Binary files a/msautotest/sld/data/plot.shp and /dev/null differ diff --git a/msautotest/sld/data/plot.shx b/msautotest/sld/data/plot.shx deleted file mode 100644 index d825625f62..0000000000 Binary files a/msautotest/sld/data/plot.shx and /dev/null differ diff --git a/msautotest/sld/data/set.json b/msautotest/sld/data/set.json deleted file mode 100644 index cbeb8cd583..0000000000 --- a/msautotest/sld/data/set.json +++ /dev/null @@ -1,437 +0,0 @@ -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": {"N_EDGES":6}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 1.845703125, - 50.69471783819287 - ], - [ - 1.60400390625, - 50.0923932109388 - ], - [ - 1.9335937499999998, - 49.25346477497736 - ], - [ - 3.2958984375, - 49.06666839558117 - ], - [ - 3.97705078125, - 49.993615462541136 - ], - [ - 2.373046875, - 50.88917404890332 - ], - [ - 1.845703125, - 50.69471783819287 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":5}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 1.3842773437499998, - 48.66194284607006 - ], - [ - 0.2197265625, - 47.204642388766935 - ], - [ - 2.109375, - 46.604167162931844 - ], - [ - 2.83447265625, - 46.92025531537451 - ], - [ - 2.7685546874999996, - 48.019324184801185 - ], - [ - 1.3842773437499998, - 48.66194284607006 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":4}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 4.482421875, - 49.781264058178344 - ], - [ - 3.71337890625, - 48.42920055556841 - ], - [ - 7.250976562499999, - 47.85740289465826 - ], - [ - 7.888183593749999, - 48.951366470947725 - ], - [ - 4.482421875, - 49.781264058178344 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":4}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -4.24072265625, - 48.574789910928864 - ], - [ - -4.15283203125, - 48.03401915864286 - ], - [ - -2.1752929687499996, - 47.70976154266637 - ], - [ - -1.2744140625, - 48.4146186174932 - ], - [ - -4.24072265625, - 48.574789910928864 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":8}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -0.9228515625, - 46.08847179577592 - ], - [ - -1.40625, - 43.389081939117496 - ], - [ - -0.52734375, - 43.100982876188546 - ], - [ - 1.25244140625, - 45.089035564831036 - ], - [ - 1.9116210937499998, - 45.10454630976873 - ], - [ - 2.43896484375, - 46.10370875598026 - ], - [ - 0.087890625, - 46.99524110694593 - ], - [ - -0.48339843749999994, - 46.84516443029276 - ], - [ - -0.9228515625, - 46.08847179577592 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":6}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -0.06591796875, - 42.90816007196054 - ], - [ - 2.74658203125, - 42.601619944327965 - ], - [ - 3.40576171875, - 43.43696596521823 - ], - [ - 4.5263671875, - 43.739352079154706 - ], - [ - 3.7353515625, - 44.63739123445585 - ], - [ - 1.7358398437499998, - 44.85586880735725 - ], - [ - -0.06591796875, - 42.90816007196054 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":4}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -2.2412109375, - 47.338822694822 - ], - [ - -1.318359375, - 46.437856895024204 - ], - [ - 0.72509765625, - 48.122101028190805 - ], - [ - -0.81298828125, - 48.44377831058802 - ], - [ - -2.2412109375, - 47.338822694822 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":6}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 1.3842773437499998, - 49.937079756975294 - ], - [ - -0.52734375, - 49.23912083246698 - ], - [ - -1.669921875, - 49.52520834197442 - ], - [ - -1.29638671875, - 48.63290858589535 - ], - [ - 0.615234375, - 48.38544219115483 - ], - [ - 1.4501953125, - 49.210420445650286 - ], - [ - 1.3842773437499998, - 49.937079756975294 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":4}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 3.2080078125, - 48.151428143221224 - ], - [ - 3.14208984375, - 46.800059446787316 - ], - [ - 5.80078125, - 46.40756396630067 - ], - [ - 6.9873046875, - 47.62097541515849 - ], - [ - 3.2080078125, - 48.151428143221224 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":7}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 3.076171875, - 46.619261036171515 - ], - [ - 2.548828125, - 46.45299704748289 - ], - [ - 2.35107421875, - 45.058001435398275 - ], - [ - 3.8891601562499996, - 44.98034238084973 - ], - [ - 4.2626953125, - 44.449467536006935 - ], - [ - 6.83349609375, - 45.30580259943578 - ], - [ - 6.591796875, - 46.31658418182218 - ], - [ - 3.076171875, - 46.619261036171515 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":5}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 4.74609375, - 44.308126684886126 - ], - [ - 4.76806640625, - 43.51668853502906 - ], - [ - 6.2841796875, - 43.13306116240612 - ], - [ - 7.448730468749999, - 43.96119063892024 - ], - [ - 6.723632812499999, - 44.74673324024678 - ], - [ - 4.74609375, - 44.308126684886126 - ] - ] - ] - } - }, - { - "type": "Feature", - "properties": {"N_EDGES":4}, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 1.86767578125, - 49.13859653703879 - ], - [ - 1.58203125, - 48.951366470947725 - ], - [ - 2.724609375, - 48.22467264956519 - ], - [ - 3.80126953125, - 48.821332549646634 - ], - [ - 1.86767578125, - 49.13859653703879 - ] - ] - ] - } - } - ] -} diff --git a/msautotest/sld/expected/base_mapfile.png b/msautotest/sld/expected/base_mapfile.png deleted file mode 100644 index 94603de3e0..0000000000 Binary files a/msautotest/sld/expected/base_mapfile.png and /dev/null differ diff --git a/msautotest/sld/expected/base_sldbody.png b/msautotest/sld/expected/base_sldbody.png deleted file mode 100644 index 94603de3e0..0000000000 Binary files a/msautotest/sld/expected/base_sldbody.png and /dev/null differ diff --git a/msautotest/sld/expected/map_reference.png b/msautotest/sld/expected/map_reference.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/map_reference.png and /dev/null differ diff --git a/msautotest/sld/expected/size_mapfile.png b/msautotest/sld/expected/size_mapfile.png deleted file mode 100644 index 94603de3e0..0000000000 Binary files a/msautotest/sld/expected/size_mapfile.png and /dev/null differ diff --git a/msautotest/sld/expected/size_sldbody.png b/msautotest/sld/expected/size_sldbody.png deleted file mode 100644 index 94603de3e0..0000000000 Binary files a/msautotest/sld/expected/size_sldbody.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_line_expression_strokeopacity.png b/msautotest/sld/expected/sld_line_expression_strokeopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_line_expression_strokeopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_line_expression_strokewidth.png b/msautotest/sld/expected/sld_line_expression_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_line_expression_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_line_literal_stroke.png b/msautotest/sld/expected/sld_line_literal_stroke.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_line_literal_stroke.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_line_literal_strokeopacity.png b/msautotest/sld/expected/sld_line_literal_strokeopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_line_literal_strokeopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_line_literal_strokewidth.png b/msautotest/sld/expected/sld_line_literal_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_line_literal_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_line_propertyname_stroke.png b/msautotest/sld/expected/sld_line_propertyname_stroke.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_line_propertyname_stroke.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_line_propertyname_strokeopacity.png b/msautotest/sld/expected/sld_line_propertyname_strokeopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_line_propertyname_strokeopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_line_propertyname_strokewidth.png b/msautotest/sld/expected/sld_line_propertyname_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_line_propertyname_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_expression_displacementx.png b/msautotest/sld/expected/sld_point_expression_displacementx.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_expression_displacementx.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_expression_displacementy.png b/msautotest/sld/expected/sld_point_expression_displacementy.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_expression_displacementy.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_expression_opacity.png b/msautotest/sld/expected/sld_point_expression_opacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_expression_opacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_expression_rotation.png b/msautotest/sld/expected/sld_point_expression_rotation.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_expression_rotation.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_expression_size.png b/msautotest/sld/expected/sld_point_expression_size.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_expression_size.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_expression_strokewidth.png b/msautotest/sld/expected/sld_point_expression_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_expression_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_literal_displacementx.png b/msautotest/sld/expected/sld_point_literal_displacementx.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_literal_displacementx.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_literal_displacementy.png b/msautotest/sld/expected/sld_point_literal_displacementy.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_literal_displacementy.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_literal_fill.png b/msautotest/sld/expected/sld_point_literal_fill.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_literal_fill.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_literal_opacity.png b/msautotest/sld/expected/sld_point_literal_opacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_literal_opacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_literal_rotation.png b/msautotest/sld/expected/sld_point_literal_rotation.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_literal_rotation.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_literal_size.png b/msautotest/sld/expected/sld_point_literal_size.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_literal_size.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_literal_stroke.png b/msautotest/sld/expected/sld_point_literal_stroke.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_literal_stroke.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_literal_strokewidth.png b/msautotest/sld/expected/sld_point_literal_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_literal_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_propertyname_displacementx.png b/msautotest/sld/expected/sld_point_propertyname_displacementx.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_propertyname_displacementx.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_propertyname_displacementy.png b/msautotest/sld/expected/sld_point_propertyname_displacementy.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_propertyname_displacementy.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_propertyname_fill.png b/msautotest/sld/expected/sld_point_propertyname_fill.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_propertyname_fill.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_propertyname_opacity.png b/msautotest/sld/expected/sld_point_propertyname_opacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_propertyname_opacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_propertyname_rotation.png b/msautotest/sld/expected/sld_point_propertyname_rotation.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_propertyname_rotation.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_propertyname_size.png b/msautotest/sld/expected/sld_point_propertyname_size.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_propertyname_size.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_propertyname_stroke.png b/msautotest/sld/expected/sld_point_propertyname_stroke.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_propertyname_stroke.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_point_propertyname_strokewidth.png b/msautotest/sld/expected/sld_point_propertyname_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_point_propertyname_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_expression_fillopacity.png b/msautotest/sld/expected/sld_polygon_expression_fillopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_expression_fillopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_expression_strokeopacity.png b/msautotest/sld/expected/sld_polygon_expression_strokeopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_expression_strokeopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_expression_strokewidth.png b/msautotest/sld/expected/sld_polygon_expression_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_expression_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_literal_fill.png b/msautotest/sld/expected/sld_polygon_literal_fill.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_literal_fill.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_literal_fillopacity.png b/msautotest/sld/expected/sld_polygon_literal_fillopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_literal_fillopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_literal_stroke.png b/msautotest/sld/expected/sld_polygon_literal_stroke.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_literal_stroke.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_literal_strokeopacity.png b/msautotest/sld/expected/sld_polygon_literal_strokeopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_literal_strokeopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_literal_strokewidth.png b/msautotest/sld/expected/sld_polygon_literal_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_literal_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_propertyname_fill.png b/msautotest/sld/expected/sld_polygon_propertyname_fill.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_propertyname_fill.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_propertyname_fillopacity.png b/msautotest/sld/expected/sld_polygon_propertyname_fillopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_propertyname_fillopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_propertyname_stroke.png b/msautotest/sld/expected/sld_polygon_propertyname_stroke.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_propertyname_stroke.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_propertyname_strokeopacity.png b/msautotest/sld/expected/sld_polygon_propertyname_strokeopacity.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_propertyname_strokeopacity.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_polygon_propertyname_strokewidth.png b/msautotest/sld/expected/sld_polygon_propertyname_strokewidth.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_polygon_propertyname_strokewidth.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_reference.png b/msautotest/sld/expected/sld_reference.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_reference.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_expression_fontsize.png b/msautotest/sld/expected/sld_text_expression_fontsize.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_expression_fontsize.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_expression_rotation.png b/msautotest/sld/expected/sld_text_expression_rotation.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_expression_rotation.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_literal_fill.png b/msautotest/sld/expected/sld_text_literal_fill.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_literal_fill.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_literal_fontsize.png b/msautotest/sld/expected/sld_text_literal_fontsize.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_literal_fontsize.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_literal_halofill.png b/msautotest/sld/expected/sld_text_literal_halofill.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_literal_halofill.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_literal_rotation.png b/msautotest/sld/expected/sld_text_literal_rotation.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_literal_rotation.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_propertyname_fill.png b/msautotest/sld/expected/sld_text_propertyname_fill.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_propertyname_fill.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_propertyname_fontsize.png b/msautotest/sld/expected/sld_text_propertyname_fontsize.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_propertyname_fontsize.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_propertyname_halofill.png b/msautotest/sld/expected/sld_text_propertyname_halofill.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_propertyname_halofill.png and /dev/null differ diff --git a/msautotest/sld/expected/sld_text_propertyname_rotation.png b/msautotest/sld/expected/sld_text_propertyname_rotation.png deleted file mode 100644 index fe78c2552d..0000000000 Binary files a/msautotest/sld/expected/sld_text_propertyname_rotation.png and /dev/null differ diff --git a/msautotest/sld/reference.map b/msautotest/sld/reference.map deleted file mode 100644 index 652ff2bb65..0000000000 --- a/msautotest/sld/reference.map +++ /dev/null @@ -1,248 +0,0 @@ -# -# Test REFERENCE -# -# REQUIRES: INPUT=GDAL OUTPUT=PNG SUPPORTS=WMS -# -# -# Three layers are defined, one for each : -# - lline : This is a five pixel wide semi opaque yellow line which draws -# an hexagon roughly around France country -# - lpolygon: This is a semi opaque cyan hexagon with one pixel wide semi -# opaque magenta line roughly around "Centre-Val de Loire" -# region -# - lpoint : This is a semi opaque twenty pixel wide upside down blue star -# with a one pixel wide red line roughly on Lyon city -# All tests shall produce the same image. -# -# -# --- Reference output rendered with MapFile only -# -# RUN_PARMS: map_reference.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint" > [RESULT_DEMIME] -# -# -# --- Reference output rendered with SLD (compatible with MapServer 7.2) -# -# -# -# lline -# -# -# -# -# -# 5 -# 0.5 -# #FFFF00 -# -# -# -# -# -# -# -# -# lpolygon -# -# -# -# -# -# 1 -# 0.5 -# #FF00FF -# -# -# 0.5 -# #00FFFF -# -# -# -# -# -# -# -# -# lpoint -# -# -# -# -# -# -# star -# -# #FF0000 -# 1 -# 1 -# -# -# #0000FF -# 0.1 -# -# -# 20 -# 180 -# -# 2 -# 2 -# -# 0.5 -# -# -# -# -# -# vera -# bold -# 12 -# -# -# #FFFFFF -# -# -# -# -# 2 -# 20 -# -# -# -# 0.5 -# 0.5 -# -# 15 -# -# -# 2 -# -# #00FF00 -# -# -# -# -# -# -# -# -# -# -# RUN_PARMS: sld_reference.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline50.5#FFFF00lpolygon10.5#FF00FF0.5#00FFFFlpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# - - - -MAP - -NAME GEOMETRY_REFERENCE -SHAPEPATH ./data -SIZE 300 300 -IMAGECOLOR 100 100 100 -FONTSET "data/fonts.lst" -PROJECTION - "init=epsg:4326" -END -WEB - IMAGEPATH "/tmp/ms_tmp/" - IMAGEURL "/ms_tmp/" - METADATA - "wms_title" "Test SLD" - "wms_onlineresource" "http://localhost/path/to/wms_simple?" - "wms_srs" "EPSG:4326" - "ows_schemas_location" "http://ogc.dmsolutions.ca" - "ows_enable_request" "*" - "ows_sld_enabled" "true" - END -END - -LAYER - NAME lline - DATA hexagon - TYPE LINE - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 5 - OPACITY 50 - COLOR 255 255 0 - END - END -END - -LAYER - NAME lpolygon - DATA inner - TYPE POLYGON - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 1 - OPACITY 50 - COLOR 0 255 255 - OUTLINECOLOR 255 0 255 - END - END -END - -LAYER - NAME lpoint - DATA plot - TYPE POINT - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - COLOR 0 0 255 - OUTLINECOLOR 255 0 0 - OPACITY 50 - SYMBOL "star" - SIZE 20 - ANGLE 180 - OFFSET 2 2 - END - LABEL - TEXT "[name]" - COLOR 255 255 255 - OUTLINECOLOR 0 255 0 - OUTLINEWIDTH 2 - TYPE TRUETYPE - FONT vera-bold - SIZE 12 - OFFSET 2 20 - ANGLE 15 - END - END -END - -SYMBOL - NAME "circle" - TYPE ellipse - FILLED true - POINTS - 1 1 - END -END - -SYMBOL - NAME "star" - TYPE vector - FILLED true - POINTS - 0 0.375 - 0.35 0.375 - 0.5 0 - 0.65 0.375 - 1 0.375 - 0.75 0.625 - 0.875 1 - 0.5 0.75 - 0.125 1 - 0.25 0.625 - END -END - -END diff --git a/msautotest/sld/run_test.py b/msautotest/sld/run_test.py deleted file mode 100755 index 294ca0ce16..0000000000 --- a/msautotest/sld/run_test.py +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env python -############################################################################### -# $Id$ -# -# Project: MapServer -# Purpose: Test harnass script for MapServer autotest. -# Author: Frank Warmerdam, warmerdam@pobox.com -# -############################################################################### -# Copyright (c) 2002, Frank Warmerdam -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -# DEALINGS IN THE SOFTWARE. -############################################################################### -# -# $Log$ -# Revision 1.1 2005/09/22 18:28:43 frank -# New -# -# Revision 1.5 2003/03/05 15:28:50 frank -# use shared mstestlib.py -# -# Revision 1.4 2003/03/02 19:54:03 frank -# auto create result directory if missing -# -# Revision 1.3 2003/01/23 22:47:50 frank -# removed python2.2 use of st_size -# -# Revision 1.2 2002/12/21 21:47:20 frank -# preserved failed results -# -# Revision 1.1 2002/11/22 21:13:19 frank -# New -# - -import sys - -sys.path.append( '../pymod' ) - -import mstestlib - - -############################################################################### -# main() - -if __name__ == '__main__': - mstestlib.run_tests( sys.argv[1:] ) - - - diff --git a/msautotest/sld/size.map b/msautotest/sld/size.map deleted file mode 100644 index 8a183f19db..0000000000 --- a/msautotest/sld/size.map +++ /dev/null @@ -1,250 +0,0 @@ -# -# Test REFERENCE -# -# REQUIRES: INPUT=GDAL OUTPUT=PNG SUPPORTS=WMS -# -# -# Three layers are defined, one for each : -# - lline : This is a five pixel wide semi opaque yellow line which draws -# an hexagon roughly around France country -# - lpolygon: This is a semi opaque cyan hexagon with one pixel wide semi -# opaque magenta line roughly around "Centre-Val de Loire" -# region -# - lpoint : This is a semi opaque twenty pixel wide upside down blue star -# with a one pixel wide red line roughly on Lyon city -# All tests shall produce the same image. -# -# -# --- Reference output rendered with MapFile only -# -# RUN_PARMS: size_mapfile.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint" > [RESULT_DEMIME] -# -# -# --- Reference output rendered with SLD -# -# -# -# lline -# -# -# -# -# -# 5 -# 0.5 -# #FFFF00 -# -# -# -# -# -# -# -# -# lpolygon -# -# -# -# -# -# 1 -# 0.5 -# #FF00FF -# -# -# 0.5 -# #00FFFF -# -# -# -# -# -# -# -# -# lpoint -# -# -# -# -# -# -# star -# -# #FF0000 -# 1 -# 1 -# -# -# #0000FF -# 0.1 -# -# -# 20 -# 180 -# -# 2 -# 2 -# -# 0.5 -# -# -# -# -# -# vera -# bold -# 12 -# -# -# #FFFFFF -# -# -# -# -# 2 -# 20 -# -# -# -# 0.5 -# 0.5 -# -# 15 -# -# -# 2 -# -# #00FF00 -# -# -# -# -# -# -# -# -# -# -# RUN_PARMS: size_sldbody.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WMS&VERSION=1.3&REQUEST=GetMap&CRS=EPSG:4326&BBOX=42,-5,52,9&FORMAT=image/png&WIDTH=200&HEIGHT=200&LAYERS=lline,lpolygon,lpoint&SLD_BODY=lline50.5#FFFF00lpolygon10.5#FF00FF0.5#00FFFFlpointstar#FF000011#0000FF0.120180220.5verabold12#FFFFFF2200.50.5152#00FF00" > [RESULT_DEMIME] -# - - - -MAP - -NAME GEOMETRY_REFERENCE -SIZE 300 300 -IMAGECOLOR 100 100 100 -FONTSET "data/fonts.lst" -PROJECTION - "init=epsg:4326" -END -WEB - IMAGEPATH "/tmp/ms_tmp/" - IMAGEURL "/ms_tmp/" - METADATA - "wms_title" "Test SLD" - "wms_onlineresource" "http://localhost/path/to/wms_simple?" - "wms_srs" "EPSG:4326" - "ows_schemas_location" "http://ogc.dmsolutions.ca" - "ows_enable_request" "*" - "ows_sld_enabled" "true" - END -END - -LAYER - NAME lline - CONNECTIONTYPE OGR - CONNECTION data/hexagon.json - TYPE LINE - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 5 - OPACITY 50 - COLOR 255 255 0 - END - END -END - -LAYER - NAME lpolygon - CONNECTIONTYPE OGR - CONNECTION data/inner.json - TYPE POLYGON - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - WIDTH 1 - OPACITY 50 - COLOR 0 255 255 - OUTLINECOLOR 255 0 255 - END - END -END - -LAYER - NAME lpoint - CONNECTIONTYPE OGR - CONNECTION data/plot.json - TYPE POINT - STATUS ON - SIZEUNITS pixels - CLASS - STYLE - COLOR 0 0 255 - OUTLINECOLOR 255 0 0 - OPACITY 50 - SYMBOL "star" - SIZE 20 - ANGLE 180 - OFFSET 2 2 - END - LABEL - TEXT "[name]" - COLOR 255 255 255 - OUTLINECOLOR 0 255 0 - OUTLINEWIDTH 2 - TYPE TRUETYPE - FONT vera-bold - SIZE (( [s12] * [s12] ) - 132 ) - OFFSET 2 20 - ANGLE 15 - END - END -END - -SYMBOL - NAME "circle" - TYPE ellipse - FILLED true - POINTS - 1 1 - END -END - -SYMBOL - NAME "star" - TYPE vector - FILLED true - POINTS - 0 0.375 - 0.35 0.375 - 0.5 0 - 0.65 0.375 - 1 0.375 - 0.75 0.625 - 0.875 1 - 0.5 0.75 - 0.125 1 - 0.25 0.625 - END -END - -END diff --git a/msautotest/valgrind-suppressions.txt b/msautotest/valgrind-suppressions.txt index d30ee138eb..f268589918 100644 --- a/msautotest/valgrind-suppressions.txt +++ b/msautotest/valgrind-suppressions.txt @@ -221,12 +221,3 @@ fun:OS_LibInit ... } - -{ - - Memcheck:Leak - match-leak-kinds: reachable - ... - fun:_mongoc_openssl_init - ... -} diff --git a/msautotest/wxs/data/polar_stereo.tif b/msautotest/wxs/data/polar_stereo.tif index 4419b184d0..db3599c177 100644 Binary files a/msautotest/wxs/data/polar_stereo.tif and b/msautotest/wxs/data/polar_stereo.tif differ diff --git a/msautotest/wxs/expected/wfsogr20_geojson.json b/msautotest/wxs/expected/wfsogr20_geojson.json deleted file mode 100644 index 5f3ea40185..0000000000 --- a/msautotest/wxs/expected/wfsogr20_geojson.json +++ /dev/null @@ -1,20 +0,0 @@ -Content-Type: application/json; subtype=geojson; charset=utf-8 - -{ -"type": "FeatureCollection", -"numberMatched": 28, -"name": "popplace_fid", -"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::3978" } }, -"features": [ -{ "type": "Feature", "id": 0, "properties": { "UNIQUE_KEY": "BACMK", "NAME": "\"Tignish", "CAPITAL": 0, "POP_CLASS": 1 }, "geometry": { "type": "Point", "coordinates": [ 2281604.25, 340848.9375 ] } }, -{ "type": "Feature", "id": 1215011, "properties": { "UNIQUE_KEY": "CAGYX", "NAME": "'Cheticamp", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2503805.5, 427872.65625 ] } }, -{ "type": "Feature", "id": 1209036, "properties": { "UNIQUE_KEY": "CBIKA", "NAME": "Sheet Harbour", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2499190.0, 194088.23438 ] } }, -{ "type": "Feature", "id": 1101036, "properties": { "UNIQUE_KEY": "BACII", "NAME": "'Souris'", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2434957.0, 347013.59375 ] } }, -{ "type": "Feature", "id": 1213006, "properties": { "UNIQUE_KEY": "CAGBW", "NAME": "\"Canso\"", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2578914.25, 292073.09375 ] } }, -{ "type": "Feature", "id": 1215002, "properties": { "UNIQUE_KEY": "CBELL", "NAME": "Port Hawkesbury", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2536072.75, 311524.96875 ] } }, -{ "type": "Feature", "id": 1214002, "properties": { "UNIQUE_KEY": "CAATB", "NAME": "Antigonish", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2494520.0, 285855.40625 ] } }, -{ "type": "Feature", "id": 1211008, "properties": { "UNIQUE_KEY": "CBKDH", "NAME": "Springhill", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2348711.75, 204294.0625 ] } }, -{ "type": "Feature", "id": 1208002, "properties": { "UNIQUE_KEY": "CBPAK", "NAME": "\"Wind\"sor", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2377598.0, 135734.70312 ] } }, -{ "type": "Feature", "id": 1206006, "properties": { "UNIQUE_KEY": "CAWAZ", "NAME": "Lunenburg", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2398677.25, 70608.14062 ] } } -] -} diff --git a/msautotest/wxs/expected/wfsogr20_geojson_with_predefine_native_data.json b/msautotest/wxs/expected/wfsogr20_geojson_with_predefine_native_data.json deleted file mode 100644 index 8d16786611..0000000000 --- a/msautotest/wxs/expected/wfsogr20_geojson_with_predefine_native_data.json +++ /dev/null @@ -1,21 +0,0 @@ -Content-Type: application/json; subtype=geojson; charset=utf-8 - -{ -"type": "FeatureCollection", -"foo": "bar", -"numberMatched": 28, -"name": "popplace_fid", -"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::3978" } }, -"features": [ -{ "type": "Feature", "id": 0, "properties": { "UNIQUE_KEY": "BACMK", "NAME": "\"Tignish", "CAPITAL": 0, "POP_CLASS": 1 }, "geometry": { "type": "Point", "coordinates": [ 2281604.25, 340848.9375 ] } }, -{ "type": "Feature", "id": 1215011, "properties": { "UNIQUE_KEY": "CAGYX", "NAME": "'Cheticamp", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2503805.5, 427872.65625 ] } }, -{ "type": "Feature", "id": 1209036, "properties": { "UNIQUE_KEY": "CBIKA", "NAME": "Sheet Harbour", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2499190.0, 194088.23438 ] } }, -{ "type": "Feature", "id": 1101036, "properties": { "UNIQUE_KEY": "BACII", "NAME": "'Souris'", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2434957.0, 347013.59375 ] } }, -{ "type": "Feature", "id": 1213006, "properties": { "UNIQUE_KEY": "CAGBW", "NAME": "\"Canso\"", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2578914.25, 292073.09375 ] } }, -{ "type": "Feature", "id": 1215002, "properties": { "UNIQUE_KEY": "CBELL", "NAME": "Port Hawkesbury", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2536072.75, 311524.96875 ] } }, -{ "type": "Feature", "id": 1214002, "properties": { "UNIQUE_KEY": "CAATB", "NAME": "Antigonish", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2494520.0, 285855.40625 ] } }, -{ "type": "Feature", "id": 1211008, "properties": { "UNIQUE_KEY": "CBKDH", "NAME": "Springhill", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2348711.75, 204294.0625 ] } }, -{ "type": "Feature", "id": 1208002, "properties": { "UNIQUE_KEY": "CBPAK", "NAME": "\"Wind\"sor", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2377598.0, 135734.70312 ] } }, -{ "type": "Feature", "id": 1206006, "properties": { "UNIQUE_KEY": "CAWAZ", "NAME": "Lunenburg", "CAPITAL": 0, "POP_CLASS": 2 }, "geometry": { "type": "Point", "coordinates": [ 2398677.25, 70608.14062 ] } } -] -} diff --git a/msautotest/wxs/wfs_200.map b/msautotest/wxs/wfs_200.map index 02341a16f5..709abcb61f 100644 --- a/msautotest/wxs/wfs_200.map +++ b/msautotest/wxs/wfs_200.map @@ -323,7 +323,6 @@ END LAYER - NAME province DATA province METADATA diff --git a/msautotest/wxs/wfs_200_allgeoms.map b/msautotest/wxs/wfs_200_allgeoms.map index f2dcc4e1c3..2e50b8260c 100644 --- a/msautotest/wxs/wfs_200_allgeoms.map +++ b/msautotest/wxs/wfs_200_allgeoms.map @@ -135,7 +135,6 @@ PROJECTION END LAYER - NAME "point" DATA "point" TOLERANCE 50 @@ -154,7 +153,6 @@ LAYER END # Layer LAYER - NAME "multipoint" DATA "multipoint" METADATA @@ -171,7 +169,6 @@ LAYER END # Layer LAYER - NAME "linestring" DATA "linestring" METADATA diff --git a/msautotest/wxs/wfs_200_cite.map b/msautotest/wxs/wfs_200_cite.map index 44ba07005e..6049889385 100644 --- a/msautotest/wxs/wfs_200_cite.map +++ b/msautotest/wxs/wfs_200_cite.map @@ -93,7 +93,6 @@ END LAYER - NAME province CONNECTIONTYPE OGR CONNECTION "data/province.shp" diff --git a/msautotest/wxs/wfs_200_cite_postgis.map b/msautotest/wxs/wfs_200_cite_postgis.map index af180e424e..0ed12d0c2d 100644 --- a/msautotest/wxs/wfs_200_cite_postgis.map +++ b/msautotest/wxs/wfs_200_cite_postgis.map @@ -83,7 +83,6 @@ END LAYER - NAME province INCLUDE "postgis.include" DATA "the_geom from (select * from province order by gid) as foo using unique gid using srid=3978" diff --git a/msautotest/wxs/wfs_200_low_wfsmaxfeatures_no_compute_number_matched.map b/msautotest/wxs/wfs_200_low_wfsmaxfeatures_no_compute_number_matched.map index df754b98e2..b57c6c49ab 100644 --- a/msautotest/wxs/wfs_200_low_wfsmaxfeatures_no_compute_number_matched.map +++ b/msautotest/wxs/wfs_200_low_wfsmaxfeatures_no_compute_number_matched.map @@ -72,7 +72,6 @@ END LAYER - NAME province DATA province METADATA diff --git a/msautotest/wxs/wfs_filter.map b/msautotest/wxs/wfs_filter.map index b13f686280..19e306a981 100644 --- a/msautotest/wxs/wfs_filter.map +++ b/msautotest/wxs/wfs_filter.map @@ -253,7 +253,6 @@ END LAYER - NAME province DATA province METADATA @@ -305,7 +304,6 @@ END # Layer LAYER - NAME popplace DATA popplace METADATA diff --git a/msautotest/wxs/wfs_filter_ogr.map b/msautotest/wxs/wfs_filter_ogr.map index 69109573a8..7119ee2ff8 100644 --- a/msautotest/wxs/wfs_filter_ogr.map +++ b/msautotest/wxs/wfs_filter_ogr.map @@ -177,7 +177,6 @@ END LAYER - NAME province CONNECTIONTYPE OGR CONNECTION "province.shp" @@ -205,7 +204,6 @@ END # Layer LAYER - NAME popplace CONNECTIONTYPE OGR CONNECTION "popplace.shp" diff --git a/msautotest/wxs/wfs_filter_postgis.map b/msautotest/wxs/wfs_filter_postgis.map index ffc237641b..a9cfc70afe 100644 --- a/msautotest/wxs/wfs_filter_postgis.map +++ b/msautotest/wxs/wfs_filter_postgis.map @@ -198,7 +198,6 @@ END LAYER - NAME province INCLUDE "postgis.include" DATA "the_geom from (select * from province order by gid) as foo using srid=3978 using unique gid" @@ -224,7 +223,6 @@ LAYER END # Layer LAYER - NAME popplace INCLUDE "postgis.include" DATA "the_geom from (select * from popplace order by gid) as foo using srid=3978 using unique gid" diff --git a/msautotest/wxs/wfs_filter_projmeter.map b/msautotest/wxs/wfs_filter_projmeter.map index 488dbbc1bf..368462f9c1 100644 --- a/msautotest/wxs/wfs_filter_projmeter.map +++ b/msautotest/wxs/wfs_filter_projmeter.map @@ -98,7 +98,6 @@ END LAYER - NAME province DATA province METADATA @@ -150,7 +149,6 @@ END # Layer LAYER - NAME popplace DATA popplace METADATA diff --git a/msautotest/wxs/wfs_ogr_geojson.map b/msautotest/wxs/wfs_ogr_geojson.map index 31fa1a5e95..a337fd245c 100644 --- a/msautotest/wxs/wfs_ogr_geojson.map +++ b/msautotest/wxs/wfs_ogr_geojson.map @@ -5,11 +5,6 @@ # # Test OGR geojson output. # RUN_PARMS: wfsogr10_geojson.json [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=popplace_fid&OUTPUTFORMAT=geojson" > [RESULT] -# -# RUN_PARMS: wfsogr20_geojson.json [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=popplace_fid&OUTPUTFORMAT=geojson&COUNT=10" > [RESULT] -# -# RUN_PARMS: wfsogr20_geojson_with_predefine_native_data.json [MAPSERV] QUERY_STRING="map=[MAPFILE]&SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=popplace_fid&OUTPUTFORMAT=geojson_with_predefined_native_data&COUNT=10" > [RESULT] - MAP NAME WFS_OGROUT_TEST @@ -29,20 +24,6 @@ OUTPUTFORMAT FORMATOPTION "USE_FEATUREID=true" FORMATOPTION "LCO:COORDINATE_PRECISION=5" END - - -OUTPUTFORMAT - NAME "geojson_with_predefined_native_data" - DRIVER "OGR/GEOJSON" - MIMETYPE "application/json; subtype=geojson; charset=utf-8" - FORMATOPTION "STORAGE=stream" - FORMATOPTION "FORM=SIMPLE" - FORMATOPTION "USE_FEATUREID=true" - FORMATOPTION "LCO:COORDINATE_PRECISION=5" - FORMATOPTION "LCO:NATIVE_MEDIA_TYPE=application/vnd.geo+json" - FORMATOPTION "LCO:NATIVE_DATA={\"foo\":\"bar\"}" -END - # WEB @@ -79,7 +60,6 @@ WEB "ows_role" "staff" "wms_feature_info_mime_type" "text/csv" "ows_enable_request" "*" - "wfs_compute_number_matched" "true" END END @@ -98,7 +78,7 @@ LAYER "wfs_title" "popplace" "wfs_description" "populated places" "wfs_featureid" "SGC_CODE" - "wfs_getfeature_formatlist" "geojson,geojson_with_predefined_native_data" + "wfs_getfeature_formatlist" "geojson" "gml_include_items" "NAME,UNIQUE_KEY,CAPITAL,POP_RANGE" "gml_POP_RANGE_alias" "POP_CLASS" "gml_types" "auto" diff --git a/msautotest/wxs/wfs_ogr_native_sql.map b/msautotest/wxs/wfs_ogr_native_sql.map index 306019fb11..016cd0c449 100644 --- a/msautotest/wxs/wfs_ogr_native_sql.map +++ b/msautotest/wxs/wfs_ogr_native_sql.map @@ -131,7 +131,6 @@ END # LAYER - NAME towns DATA towns CONNECTIONTYPE OGR @@ -310,7 +309,6 @@ LAYER END # Layer LAYER - NAME select_zero_feature DATA "SELECT * FROM towns WHERE 0" CONNECTIONTYPE OGR diff --git a/msautotest/wxs/wfs_ogr_no_native_sql.map b/msautotest/wxs/wfs_ogr_no_native_sql.map index 2e6a6d9661..cbf7ca83ab 100644 --- a/msautotest/wxs/wfs_ogr_no_native_sql.map +++ b/msautotest/wxs/wfs_ogr_no_native_sql.map @@ -97,7 +97,6 @@ END # LAYER - NAME towns DATA towns CONNECTIONTYPE OGR diff --git a/msautotest/wxs/wfs_time.map b/msautotest/wxs/wfs_time.map index 9938e35f8b..656c0a5057 100644 --- a/msautotest/wxs/wfs_time.map +++ b/msautotest/wxs/wfs_time.map @@ -71,7 +71,6 @@ END # LAYER - NAME time DATA pattern1 METADATA diff --git a/msautotest/wxs/wfs_time_ogr.map b/msautotest/wxs/wfs_time_ogr.map index 7f98689502..79de9ccaad 100644 --- a/msautotest/wxs/wfs_time_ogr.map +++ b/msautotest/wxs/wfs_time_ogr.map @@ -70,7 +70,6 @@ END # LAYER - NAME time CONNECTIONTYPE OGR CONNECTION "data/pattern1.shp" diff --git a/msautotest/wxs/wfs_time_postgis.map b/msautotest/wxs/wfs_time_postgis.map index aed6975ad0..3738df708d 100644 --- a/msautotest/wxs/wfs_time_postgis.map +++ b/msautotest/wxs/wfs_time_postgis.map @@ -76,7 +76,6 @@ END # LAYER - NAME time INCLUDE "postgis.include" DATA "the_geom from (select * from pattern1 order by gid) as foo using unique gid using srid=4326" diff --git a/msautotest/wxs/wms_inspire.map b/msautotest/wxs/wms_inspire.map index 524035455c..d969397e84 100644 --- a/msautotest/wxs/wms_inspire.map +++ b/msautotest/wxs/wms_inspire.map @@ -255,7 +255,6 @@ MAP # LAYER - NAME TN.CommonTransportElements METADATA "wms_title" "TN.CommonTransportElements" diff --git a/msautotest/wxs/wms_north_polar_stereo_extent.map b/msautotest/wxs/wms_north_polar_stereo_extent.map index 2c621041b4..44238f9e25 100644 --- a/msautotest/wxs/wms_north_polar_stereo_extent.map +++ b/msautotest/wxs/wms_north_polar_stereo_extent.map @@ -74,7 +74,7 @@ LAYER "lat_0=90" "lat_ts=60" "lon_0=252" - "k=1" + "k=90" "x_0=0" "y_0=0" "a=6371229" diff --git a/msautotest/wxs/wms_raster.map b/msautotest/wxs/wms_raster.map index 7b7fd7b41d..74a8018f73 100644 --- a/msautotest/wxs/wms_raster.map +++ b/msautotest/wxs/wms_raster.map @@ -86,7 +86,6 @@ END # LAYER - NAME road DATA toronto.tif METADATA diff --git a/msautotest/wxs/wms_uvraster_map_reprojection.map b/msautotest/wxs/wms_uvraster_map_reprojection.map index c2075540a7..1a06a57848 100644 --- a/msautotest/wxs/wms_uvraster_map_reprojection.map +++ b/msautotest/wxs/wms_uvraster_map_reprojection.map @@ -54,7 +54,7 @@ MAP "lat_0=90" "lat_ts=60" "lon_0=249" - "k=1" + "k=90" "x_0=0" "y_0=0" "a=6371229" diff --git a/renderers/agg/include/agg_conv_curve.h b/renderers/agg/include/agg_conv_curve.h index dfaabf5c91..212f169549 100644 --- a/renderers/agg/include/agg_conv_curve.h +++ b/renderers/agg/include/agg_conv_curve.h @@ -154,8 +154,8 @@ namespace mapserver return path_cmd_line_to; } - double ct2_x = 0; - double ct2_y = 0; + double ct2_x; + double ct2_y; double end_x; double end_y; diff --git a/renderers/agg/include/agg_path_storage.h b/renderers/agg/include/agg_path_storage.h index 1fc9cf96a0..660b778507 100644 --- a/renderers/agg/include/agg_path_storage.h +++ b/renderers/agg/include/agg_path_storage.h @@ -720,7 +720,7 @@ namespace mapserver template void concat_path(VertexSource& vs, unsigned path_id = 0) { - double x = 0, y = 0; + double x, y; unsigned cmd; vs.rewind(path_id); while(!is_stop(cmd = vs.vertex(&x, &y)))