[mapserver-users] Getting an image scaled to pixels
Stuart
reachstuart at yahoo.com.au
Fri Mar 9 00:05:57 PST 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