ThinkGeo.com    |     Documentation    |     Premium Support

Shp file located in /Resources

 


Hello,


I have an issue regarding the path location of the shp file.


When I'm doing it this way :



ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(

@"C:\DATA_SVN\OLRnet\System\OLRnet\trunk\Resources\MapData\cntry02.shp");




everything works.


But when I'm trying to get the resource without the absolute path: 


 ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer("~/Resources/MapData/cntry02.shp");

or 


ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(MapPath("~/Resources/MapData/cntry02.shp")); I have some issues with the error : "The projection is not open. Please open it before calling this method.



How could it be possible to "link" the shp file which is in the folder "Resources" of my VS solution ???



Could you give me an example where the shp file is in the folder resources ???

Hello Patrick, 
  
 Thanks for your post, the way you load the shape file is right, it will work when the shape file is in the right folder, I noticed the error message is projection is not open, so could you please check if you set any proj4projection but forget to call the open method before you use it? 
  
 If you can provide more code or a sample to us, it’s much easier to find out the root cause. 
  
 Regards, 
  
 Gary

Gary, Thank you for your answer.


Please, let beside the error message I got with the projection, because it is only related to the loading of the ShapeFileFeatureLayer.


If there was no projection, the error message is the following : 


  
Object reference not set to an instance of an object


which is logical, because I can't load properly the ShapeFileFeatureLayer from the resources. So what I'm asking you, is how could I load properly the ShapeFileFeatureLayer located in the folder "Resources". Here is what I'm doing : 
ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer("~/Resources/MapData/cntry02.shp");
and for a reason I don't know, the file isn't loaded even if all the files (.dbf, .ids, .idx, .shp and .shx) are in the folder mentioned. in contrary, the whole path works 
ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"C:\Resources\MapData\cntry02.shp");
So what I'm kindly asking you, is a realistic example, to have the .shp file in a folder resource of a VS solution and not on a C:\ drive (which is good for examples but not for "real cases")


Thank you very much for your future example.



Hello Patrick, 
  
 I see, yes this exception message is caused by missing the shapefile. 
  
 We have a lot of samples using that way, like HowDoISamples—>DataProviders—>LoadAShapeFileFeatureLayer, can you compare this sample with your code and see what’s the difference? 
  
 Regards, 
  
 Gary 
  
 Gary

I could solve the problem of the resources. 
  
 Thank you for the reference of the example

Hello Patrick, 
  
 You are welcome, please feel free to let us know your problem. 
  
 Regards, 
  
 Gary