ThinkGeo.com    |     Documentation    |     Premium Support

Shapefile with PRJ throws exception "Initialize Ellps Failed!"

Hi,


When I open a layer containing a shapefile with an imported PRJ spatial definition, it throws an exception: Initialize Ellps Failed!.


I use Thinkgeo Wpf Desktop Edition 5.0. My regional settings is on "French (France)".


Here's the prj definition:


PROJCS["NTF_France_II_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199432955]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",2200000],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",46.8],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",46.8],UNIT["Meter",1]]


Here's the callstack:


   at mBQ=.eUk=.kEk=(2kI= kUk=, yVw= kkk=, 8l8= k0k=, Bhc= lEk=, Dictionary`2 lUk=)

   at mBQ=.eUk=.iEk=(String iUk=)

   at ThinkGeo.MapSuite.Core.ManagedProj4Projection.OpenCore()

   at ThinkGeo.MapSuite.Core.Projection.Open()

   at ThinkGeo.MapSuite.Core.FeatureSource.Open()

   at ThinkGeo.MapSuite.Core.FeatureLayer.OpenCore()

   at ThinkGeo.MapSuite.Core.Layer.Open()

   at WpfCartography.CWpfCartography.GetFullExtent(GeoCollection`1 Layers, Overlay OSMOverlay, Boolean bUseOSM) in D:\integration\trunk\sources\Report Elements\Wpf\Cartography\WpfCartography\WpfCartography.xaml.cs:line 857

   at WpfCartography.CWpfCartography.ComputeExtentRestriction() in D:\integration\trunk\sources\Report Elements\Wpf\Cartography\WpfCartography\WpfCartography.xaml.cs:line 493

   at WpfCartography.CWpfCartography.Refresh() in D:\integration\trunk\sources\Report Elements\Wpf\Cartography\WpfCartography\WpfCartography.xaml.cs:line 452

 


When the Regional settings is "English (United States)", I don't get the exception.


Thanks,


P.OM


 



Hi Puthirak,


It seems that you customized the InternalProjectionParametersString and ExternalProjectionParametersString, could you please provide us a self-contained sample (with the source shape file) to recreate this issue? It will be helpful for tracking the root cause.


Regards,


Ivan



Hi Ivan,


Here's your self-contained sample...


Thanks,


P.OM



P.OM,


Thanks for your post and question.
 
I am afraid this is a potential bug related with culture info, could you do a real quick try on the following API both on English and French region settings to see if the returned back projection string makes any difference based on region?
 

string str = Proj4Projection.ConvertPrjToProj4(prjString);

 
Any more questions please feel free to let me know.
 
Thanks.
 
Yale

Hi Yale,


With fr-FR CultureInfo, we have:


+proj=lcc +lat_1=Non Numérique +lat_0=Non Numérique +lon_0=Non Numérique +k_0=0 +x_0=600000 +y_0=2200000 +a=0 +b=0 +units=m +no_defs


With en-US CultureInfo, we have:


+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.33722916666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356514.99990419 +units=m +no_defs


with Invariant CultureInfo, we have:


+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.33722916666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356514.99990419 +units=m +no_defs


So setting temporarily the thread CultureInfo to Invariant before the prj to proj4 conversion should do the trick.


Thanks,


P.OM



Puthirak,


We're glad that your issue has been resolved. Please let us know if you have further questions.


Regards,


Ivan