[MAPSERVER-USERS] problem: mapserv produces truncated image
BrainDrain
paulborodaev at gmail.com
Wed Aug 13 06:22:17 PDT 2008
I have a correct map file & map extent set to some value tuple
when I request map tiles (256x256) I use urls like this
http://localhost/cgi-bin/mapserv.exe?layers=district_boundary&map=C%3A%2FWINDOWS%2FMicrosoft.NET%2FFramework%2Fv2.0.50727%2FTemporary%20ASP.NET%20Files%2Fwem%2Ff47bfcbf%2FSession_wdndwv554k5bdgzloezwkfng%2F0_cicbase.map&map_imagetype=AGG_JPEG&format=image%2Fjpeg&ts=1218632591362&session=wdndwv554k5bdgzloezwkfng&mode=map&mapext=45558.73493975904+-5410484.26506024+66216.46987951807+-5389826.530120482&imgext=45558.73493975904+-5410484.26506024+66216.46987951807+-5389826.530120482&map_size=256+256&imgx=128&imgy=128&imgxy=256+256
all works fine
but for my overview map I want to get small (180x90) image in single tile
mode:
http://localhost/cgi-bin/mapserv.exe?layers=street_axis%20water_resources%20district_boundary%20industrial_estate%20private_estate%20cottage%20culture_growth%20natural_growth%20highrise_estate%20graveyard&map=C%3A%2FWINDOWS%2FMicrosoft.NET%2FFramework%2Fv2.0.50727%2FTemporary%20ASP.NET%20Files%2Fwem%2Ff47bfcbf%2FSession_0nqmmljy3sq112anxcbz50yb%2F0_cicbase.map&map_imagetype=AGG_JPEG&format=image%2Fjpeg&ts=1218633146208&session=0nqmmljy3sq112anxcbz50yb&mode=map&mapext=-4660.150836680041+-5425914.804049532+102501.84916331996+-5372333.804049532&imgext=-4660.150836680041+-5425914.804049532+102501.84916331996+-5372333.804049532&map_size=180+90&imgx=90&imgy=45&imgxy=180+90
but mapserv produces truncated image
http://www.nabble.com/file/p18962950/truncated.jpg
my web service (it's slower than mapserv) produces normal image
http://www.nabble.com/file/p18962950/normal.jpg
my code:
private void emulateMapServer(HttpContext context, mapObj map)
{
HttpRequest request = context.Request;
HttpResponse response = context.Response;
HttpServerUtility server = context.Server;
int i;
ArrayList layersQuery = new
ArrayList(context.Server.UrlDecode(request.QueryString["layers"]).Split('
'));
string
imageType=context.Server.UrlDecode(request.QueryString["map_imagetype"]);//AGG_PNG24
string
format=context.Server.UrlDecode(request.QueryString["format"]);//"image/png"
string
queryFile=context.Server.UrlDecode(request.QueryString["queryFile"]);
string[]
extentRaw=context.Server.UrlDecode(request.QueryString["mapext"]).Split('
');
string[]
mapSize=context.Server.UrlDecode(request.QueryString["map_size"]).Split('
');
for (i = 0; i < map.numlayers; i++)
{
using (layerObj layer = map.getLayer(i))
if (layersQuery.Contains(layer.name))//Default
{
if (layer.status != mapscript.MS_ON)
layer.status = mapscript.MS_ON;
//layer.setFilter("");
}
else
if (layer.status != mapscript.MS_OFF)
layer.status = mapscript.MS_OFF;
}
rectObj currentExtent = new rectObj(map.extent.minx, map.extent.miny,
map.extent.maxx, map.extent.maxy, 0);//map.extent
rectObj newExtent = new rectObj(double.Parse(extentRaw[0],
CultureInfo.InvariantCulture.NumberFormat), double.Parse(extentRaw[1],
CultureInfo.InvariantCulture.NumberFormat), double.Parse(extentRaw[2],
CultureInfo.InvariantCulture.NumberFormat), double.Parse(extentRaw[3],
CultureInfo.InvariantCulture.NumberFormat), 0);//Convert.ToDouble();
if (currentExtent.minx != newExtent.minx || currentExtent.maxx !=
newExtent.maxx || currentExtent.miny != newExtent.miny || currentExtent.maxy
!= newExtent.maxy)
map.extent = newExtent;
if (map.imagetype != imageType)
map.setImageType(imageType);
int newWidth = int.Parse(mapSize[0]);
int newHeight = int.Parse(mapSize[1]);
if (map.width != newWidth || map.height != newHeight)
{
map.width = newWidth;
map.height = newHeight;
}
response.ContentType = format;//outputFormatObj.mimetype?
imageObj imgRaw=null;
if (queryFile!=null)
map.loadQuery(queryFile);
if (validateQuery(map))
{
if (map.querymap.status != mapscript.MS_ON)
map.querymap.status = mapscript.MS_ON;
imgRaw=map.drawQuery();
}
else
{
if (map.querymap.status != mapscript.MS_OFF)
map.querymap.status = mapscript.MS_OFF;
imgRaw = map.draw();
}
using (MemoryStream ms = new MemoryStream(imgRaw.getBytes()))
ms.WriteTo(response.OutputStream);
}
nothing unusual.
how can I do it woth mapserv?
--
View this message in context: http://www.nabble.com/problem%3A-mapserv-produces-truncated-image-tp18962950p18962950.html
Sent from the Mapserver - User mailing list archive at Nabble.com.
More information about the MapServer-users
mailing list