From d11da8d66947f599785eaa25a725210b598c7bff Mon Sep 17 00:00:00 2001 From: jmckenna Date: Wed, 2 Dec 2020 15:01:42 -0400 Subject: [PATCH 1/3] remove USE_PROJ check --- maptile.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/maptile.h b/maptile.h index 84670809b6..07e5d4c650 100644 --- a/maptile.h +++ b/maptile.h @@ -30,9 +30,7 @@ #include "mapserver.h" #include "maptemplate.h" -#ifdef USE_PROJ #define USE_TILE_API 1 -#endif #define SPHEREMERC_PROJ4 "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +units=m +k=1.0 +nadgrids=@null" #define SPHEREMERC_GROUND_SIZE (20037508.34*2) From 750081b554c72ed1f9ba39b53c5067b881169a50 Mon Sep 17 00:00:00 2001 From: jmckenna Date: Wed, 2 Dec 2020 15:02:28 -0400 Subject: [PATCH 2/3] add test for mode_tile --- msautotest/misc/expected/mode_tile_output.png | Bin 0 -> 3412 bytes msautotest/misc/mode_tile.map | 36 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 msautotest/misc/expected/mode_tile_output.png create mode 100644 msautotest/misc/mode_tile.map diff --git a/msautotest/misc/expected/mode_tile_output.png b/msautotest/misc/expected/mode_tile_output.png new file mode 100644 index 0000000000000000000000000000000000000000..82c5c1e8874d6e50d41b6dbbc6987fed03893e4b GIT binary patch literal 3412 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 PEdjQcP8QX_`QQC7{U%8e literal 0 HcmV?d00001 diff --git a/msautotest/misc/mode_tile.map b/msautotest/misc/mode_tile.map new file mode 100644 index 0000000000..ee565e4334 --- /dev/null +++ b/msautotest/misc/mode_tile.map @@ -0,0 +1,36 @@ +# +# Test of mode=tile (CGI "tile mode"). A 256x256 tile should be generated +# in the "gmap" tilemode, reprojected to the Google Mercator (EPSG:3857) +# and displayed at the global extent. +# +# REQUIRES: INPUT=OGR OUTPUT=PNG SUPPORTS=PROJ +# +# RUN_PARMS: mode_tile_output.png [MAPSERV] QUERY_STRING="map=[MAPFILE]&MODE=tile&TILEMODE=gmap&TILE=0+0+0&LAYERS=canada-poly" > [RESULT_DEMIME] +# +MAP + NAME "MODE_TILE_TEST" + IMAGETYPE PNG + EXTENT -140.992892 41.976786 -55.630945 71.990315 + SIZE 400 400 + + PROJECTION + "init=epsg:4326" + END #projection + + LAYER + NAME "canada-poly" + TYPE POLYGON + STATUS DEFAULT + CONNECTIONTYPE OGR + CONNECTION "data/canada.dgn" + DATA "elements" + PROJECTION + "init=epsg:4326" + END #projection + CLASS + OUTLINECOLOR 0 0 0 + COLOR 120 120 120 + END #class + END #layer + +END #map From c9d7b2f32f7cad806cdbd0b0343eb99f99601dfa Mon Sep 17 00:00:00 2001 From: jmckenna Date: Mon, 7 Dec 2020 13:18:18 -0400 Subject: [PATCH 3/3] handle memory leaks --- maptemplate.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/maptemplate.c b/maptemplate.c index b2cb2a0c34..96d99ef49d 100644 --- a/maptemplate.c +++ b/maptemplate.c @@ -4612,6 +4612,7 @@ mapservObj *msAllocMapServObj() mapserv->ShapeIndex=-1; mapserv->TileIndex=-1; mapserv->TileMode=TILE_GMAP; + mapserv->TileCoords=NULL; mapserv->QueryCoordSource=NONE; mapserv->ZoomSize=0; /* zoom absolute magnitude (i.e. > 0) */ @@ -4651,6 +4652,8 @@ void msFreeMapServObj(mapservObj* mapserv) msFree(mapserv->SelectLayer); msFree(mapserv->QueryFile); + msFree(mapserv->TileCoords); + msFree(mapserv); } }