ThinkGeo.com    |     Documentation    |     Premium Support

Problem with projection

Hello,


Help me pls to decide such problem. I have geography data, stored in MSSQL database in WGS84. I need display these data in UTM zone 36 projection.  


In WMSLayerPlugin extension I override methods:


protected override System.Collections.ObjectModel.Collection<string> GetProjectionsCore()

        {

            return new System.Collections.ObjectModel.Collection<string> { "EPSG:32636" };

        }


protected override RectangleShape GetBoundingBoxCore(string crs)

        {

            

            return new RectangleShape(346253.683491, 5688626.793658, 451518.313067, 5080783.042678);

        }


In desktop client:


            map.MapUnit = GeographyUnit.Meter;

            map.CurrentExtent = new RectangleShape(346253.683491, 5688626.793658, 451518.313067, 5080783.042678);

        


            TiledWmsOverlay staticOverlay = new TiledWmsOverlay(new Uri("localhost:62626/WmsHandler.axd"));

            staticOverlay.TileCache = null;

            staticOverlay.Parameters.Add("SRS", "EPSG:32636");

            staticOverlay.ActiveLayerNames.Add("MyMap");

            staticOverlay.ActiveStyleNames.Add("DEFAULT");

            map.Overlays.Add("TiledWmsOverlay", staticOverlay);


When application started, I get message "This CRS not supported in WMS server:"...


Tell me pls, what I must add for display UTM projection?


Thanks.


 


 



Sorry, problem was solved



Glad the problem was solved.

Excuse me, but it was my mistake to think that problem was solved :-(


I append such code in WMS plugin:


var projection = new Proj4Projection();

projection.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326);

projection.ExternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(32636);


MsSql2008FeatureLayer layer = new MsSql2008FeatureLayer(connectionString, table, Id);

layer.FeatureSource.Projection =projection;


 


In client I remove 


staticOverlay.Parameters.Add("SRS", "EPSG:32636");


After these changes I can see my map in correct projection. 


But now I have trouble with layers visibility. All my layers now are visible on all scales.


I configurated layer1 visible from ZoomLevel 1 to ZoomLevel 10, but it stay visible in other zoomlevels...


Explain me pls how correctly change projection.


Thanks!



Hi Anton,


In your WMS plugin are you also using the same MapUnit of map.MapUnit = GeographyUnit.Meter?


If possible could you post your WMS Plugin code so we can verify how you have your ZoomLevels setup?

To help the 'readability' could you post your code using the special code tags found here:

gis.thinkgeo.com/Support/Dis...fault.aspx



Hi, Ryan!


Thank you very much for advice!


Really, when I override GetGeographyUnitCore,and return Meter, system work fine! 


 



Hi Anton,  
 Thanks for your feedback. I am happy to hear this is working for you!