ThinkGeo.com    |     Blog    |     Wiki    |     Support

Entent & Projection Related issues

Dear Support,


I am facing the following issues with respect to the Projection and Extent.


1) Extent : Set Value varies from what i set


    I am trying to set the Map.CurrentExtent value and set is successful, but after it has been set, when i check the value it is not the same as what i set. There is a variation.


  E.g. 


  a) CurrentExtent was {527299.031831269,3148591.33044662,540040.98995113,3135925.67147718}


  b) Extent value to be set is  {536788.776059142,3137440.68860918,538391.607825851,3135846.84072119}


  c) But after setting the above value, CurrentExtent value is set to {535997.447177514,3138226.97203636,539182.936707479,3135060.557294}


Observation: 


i) From my understanding it is trying to adjust the extent to some square area.


ii) But if i set the value in the above point-c (which is already adjusted by map) then it is acceping the same value and setting it exactly.


2) Incorrect projection conversion:


Converting value from internal to External and then converting it back to internal is giving incorrect value. I used the following functions. projNetProjection.ConvertToInternalProjection, projNetProjection.ConvertToExternalProjection.


E.g. 


a) Values in Internal Projection is {3144662.1529888269, 530512.28006724466, 3139855.3065124722, 536883.25912717532 }


b) Converted the above to External Projection and got {28.42806, -80.68856, 28.38451, -80.62338 }


c) Now converting this back to internal projection gives me {3144679.9625894581, 530499.79024319677, 3139837.1337499064, 536898.09939564939 } - which is different from step (a).


Same for External to Internal to External conversion.


 


Kindly help us in resolving this issue.


Thanks and Regards,


Gobi


 



Gobi,


  1)


   There is a whole discussion on this post gis.thinkgeo.com/Support/Discussion...fault.aspx. Please, read it and you will understand what is going on and see that what is happening is normal.


2)


 Can you give us the exact internal and external projection strings for this case? I am curious to test this out and see exactely what is going on. Thank you.


 


 



Thanks for the quick response. for the Extent i will go through the link. 
  
 Please find the exact input and code snippet for the point 2: 
  
 //Actual input in Internal Projection format 
 RectangleShape shapeInInternalProj = new RectangleShape(New PointShape (3144662.1529888269, 530512.28006724466), New PointShape(3139855.3065124722, 536883.25912717532 )); 
  
 //Converted to External Projection format 
 RectangleShape shapeInExternalProj = projNetProjection.ConvertToExternalProjection(shapeInInternalProj );  
 //This will have the following value {28.42806, -80.68856, 28.38451, -80.62338 } 
  
 //Converted back to Internal Projection format 
 RectangleShape shapeInInternalProjConvertedBack = projNetProjection.ConvertToInternalProjection(shapeInExternalProj );  
 //This will have the following value {3144679.9625894581, 530499.79024319677, 3139837.1337499064, 536898.09939564939 } 
  
  
 Let me know if you need any other clarifications. 
  
 Thanks and Regards, 
 Gobi

Gobi,


 To further help you, what I need from you is:


The value of projNetProjection.InternalProjectionParametersString.


The value of projNetProjection.ExternalProjectionParametersString.


Thank you.



I know this is an old post, but we’re running into the same issue with inconsistencies in projections back and forth.  Here’s the code:


Proj4Projection proj4 = new Proj4Projection(4326, 3587);
RectangleShape original = new RectangleShape(-9390882.4861985, 4618444.9861575, -8265439.1651197, 4004091.4891691);
proj4.Open();
RectangleShape projected = proj4.ConvertToInternalProjection(original);
RectangleShape restored = proj4.ConvertToExternalProjection(projected);
proj4.Close();

The results from the “restored” projection are:

-9390882.4861984979, 4618444.9861575, -8150081.3126829658, 3942083.9608515971



The first two numbers (upper right point) match fine when rounded.  The last two numbers (lower left point) are off by about 1.5%.  This is causing problems with storing extents in lat/long from projected extents, and the retrieving/re-projecting the lat/long extents. 






Hi Chuck, 
  
 It should be a known problem. 
  
 I tested your code and list some other rectangle proved that. 
  
 The reason should be when convert each time, the location lost precision. Multiply convert enlarge the error. 
  
 I think the solution is to save original rectangle instead of convert forward and back by Proj4 for now. 
  
 Regards, 
  
 Don