ThinkGeo.com    |     Documentation    |     Premium Support

Problem finding features with RotateProjection

Hi,


 


I'm trying to get features from the map with a mouse click. I use GetFeaturesNearestTo method. It used to work fine until I added a RotateProjection.  Now when I click the item on the map and try to get its feature I get InvalidoperationException: Cannot get the projection’s InternalGeographyUnit, please provide it by overriding the Projection’s GetInternalGeographyUnitCore() method. I found that rotateProjection.GetInternalGeographyUnit method returns 'Unknown' and that's apparently is the source of the problem. There seems to be very similar bug fixed in version 5.0.0.0 of ThinkGeo.MapSuite.Core Namespace: "Fixed a bug where the GetInternalGeographyUnit always return Unknown  when using FeatureSource.GetFeaturesWithinDistance with the  RotationProjection". However it's only listed in release notes of WMS server, Silverlight and Services editions. And I use Desktop edition. I downloaded the latest daily build libraries (5.0.0.19) but the problem still persists. Is it not fixed yet in the Desktop edition or am I doing something wrong? Should I set the geography unit of rotate projection manually or something?


Here's some sample code:


InMemoryFeatureLayer dirLayer = (InMemoryFeatureLayer)winformsMap.FindFeatureLayer(LayerName);

Collection<string> columnNames = new Collection<string>();

columnNames.Add("Id");

Collection<Feature> features = dirLayer.FeatureSource.GetFeaturesNearestTo(new PointShape(e.WorldX, e.WorldY), 

winformsMap.MapUnit, 1, columnNames, distanceBuffer, DistanceUnit.Meter);

 


 


Regards,


Oleg



One more thing I noticed: when using libraries of version 4.5.0.0 everything works fine with the same exact code. However version 4.5. has bug with rotating InMemoryFeatureLayer, which is fixed in version 5.0. So I'm in a kind of deadlock situation.


Oleg



Oleg, 
  
 Thanks for your post, I believe this problem had been fixed for Desktop Edition if it was fixed in the other products, because this ability is from our core code, all products depend on it. Also the posted code is not enough for me to reproduce your problem, as your descriptions, I think the problem is from your rotate projection, can you give us a simple sample that can reproduce your problem properly so that we can help you fix your problem as soon as possible? 
  
 Thanks, 
  
 Scott,

Apparently in version 5 you need to set the GeographyUnit manually like this:


rotateProjection.SourceUnit = GeographyUnit.DecimalDegree;


I missed it somehow, so the problem is solved.


There was actually another problem, I created a support ticket but for some reason can't open it. Every time I try to open it it says:


Sorry, an error occurred while processing your request. Please contact our support.


Same happens if I click the link I got by email or by clicking it in the customer portal.


 


Regards,


Oleg



Oleg, 
  
 This issue has been resolved and now you can access the customer portal tickets properly, 
  
 Any more questions please let me know, 
  
 Thanks, 
  
 Scott,