[mapserver-users] Getting an image scaled to pixels

Stuart reachstuart at yahoo.com.au
Fri Mar 9 03:05:57 EST 2012


Hi Andreas,

I put the config line in the code with no change sorry, although that
does sound like exactly what I am after.

Thanks.
Stuart

On Fri, Mar 9, 2012 at 6:16 PM, Eichner, Andreas - SID-NLKM
<Andreas.Eichner at sid.sachsen.de> wrote:
>
> You might try:
>
> mapserverMap.setConfigOption("MS_NONSQUARE", "YES");
>
> this is basically what that WMS server code does to enable non-square pixels.
>
> HTH
>
>
>> -----Ursprüngliche Nachricht-----
>> Von: mapserver-users-bounces at lists.osgeo.org
>> [mailto:mapserver-users-bounces at lists.osgeo.org] Im Auftrag von Stuart
>> Gesendet: Freitag, 9. März 2012 01:33
>> An: mapserver-users at lists.osgeo.org
>> Betreff: [mapserver-users] Getting an image scaled to pixels
>>
>> Hi,
>>
>> I have a csharp application using map_script that I am using to cut up
>> an ECW file into tiles for display on a Bing map. The issue I am
>> having is that each tile slightly overlaps others above and below it.
>> The procedure I am using is as follows:
>>
>> I load the basic map file below add the projection and units from
>> within a csharp application:
>>
>>    mapserverMap = new mapObj(mapOutputPath + mapFileName);
>>    mapserverMap.setWKTProjection("+proj=merc +a=6378137 +b=6378137
>> +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null
>> +no_defs ");
>>    mapserverMap.setSize(256, 256);
>>    mapserverMap.units = MS_UNITS.MS_DD ;
>>
>>
>> I then use the csharp application to add a single RASTER layer
>>
>>    layerObj layer = new layerObj(mapserverMap);
>>    Console.WriteLine(mapserverMap.layerorder);
>>    layer.name = ecwName;
>>    layer.type = MS_LAYER_TYPE.MS_LAYER_RASTER;
>>    layer.status = mapscript.MS_ON;
>>    layer.sizeunits = (int)MS_UNITS.MS_PIXELS;
>>
>>    var extentdoubles = GetPlanExtentFromDB(ecwName,
>> planConnectionString);
>>    layer.setExtent(extentdoubles[0], extentdoubles[1],
>> extentdoubles[2], extentdoubles[3]);
>>
>>    layer.data = mapOutputPath + ecwName + ".ecw";
>>
>> I have identified the issue is when for each quadKey I set the
>> mapserverMap extent to the bounding box of the quadKey MapServer
>> changes the latitudes of its extent to fit the map size (256 x 256)
>>
>> e.g. for quadKey 31121320312020 i set the MapServer extent to:
>>
>>    maxX
>>    152.95166015625
>>    maxY
>>    -30.334953881988554
>>    minX
>>    152.9296875
>>    minY
>>    -30.353916372297036
>>
>> Then after setting the extent if I ask MapServer for its
>> extent it returns:
>>
>>    mapserverMap.extent
>>    {OSGeo.MapServer.rectObj}
>>        maxx: 152.95166015625
>>        maxy: -30.333448799017795
>>        minx: 152.9296875
>>        miny: -30.355421455267795
>>
>> Notice the Longitudes are the same but the Latitudes (minY, maxY) have
>> been stretched.
>>
>> So my question is that when I set mapserverMap object to the bounding
>> box I want it to be set to the latitude and longitude given and
>> stretched to fit the map size (256 x 256) rather than MapServer
>> modifying the latitudes to fit the map size.
>>
>> Any help would be appreciated.
>>
>> Stuart
>>
>> --
>>
>> Here is the starting map file
>>
>> MAP
>>        NAME MyMap
>>
>>        DEBUG ON
>>        IMAGECOLOR 128 155 155
>>
>>        UNITS DD
>>        RESOLUTION 96
>>        TRANSPARENT OFF
>>        CONFIG   "PROJ_LIB"  "/ms4w/proj/nad/"
>>        CONFIG "CPL_DEBUG" "ON"
>>        SYMBOLSET ./etc/symbols.sym
>>        IMAGETYPE png
>>        FONTSET ./etc/fonts.txt
>>
>> END
>> _______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>>



-- 
Stuart
.o.
..o
ooo


More information about the mapserver-users mailing list