ThinkGeo.com    |     Documentation    |     Premium Support

Projected Shapefile does not appear in map

Hi,


I am evaluating Map Suite Desktop (WinForms) as a replacement for ESRI's MapObjects.  I went through the getting started tutorial and looked at the sample code for re-projecting data on the fly so that layers in differenct coordinate systems will line up properly.


The sample I was working with loaded sample data (World and World Capitals) provided with the evaluation download, which is aparently in WGS84 (EPSG 4326).  In my experimenting I added a layer from SQL Server 2008 in NAD 83 Zone 16 (EPSG 26916).  I used the Proj4Projection object and the layer I added worked perfectly.


However, I then tried to add a shape file in NAD27 (EPSG 4267).  The code I used appears below.  When the Proj4Projection object is applied to this layer it does not appear.  I can get the layer to appear without trying to re-project it, but it doesn't quite line up with the other data.  Any suggestions?


Thanks,


Steve


   


 



      Dim oProj2 As New Proj4Projection(4267, 4326)
      Dim oCountiesShp As New ShapeFileFeatureLayer("C:\Program Files\ESRI\MapObjects2\Samples\Data\USA\Counties.shp")
      oCountiesShp.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.SimpleColors.Yellow, 2)
      oCountiesShp.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
      oCountiesShp.FeatureSource.Projection = oProj2
      ShapeFileFeatureLayer.BuildIndexFile("C:\Program Files\ESRI\MapObjects2\Samples\Data\USA\Counties.shp", BuildIndexMode.DoNotRebuild)


 



I suspect that that the projection for your shapefile is not exactely EPSG 4267 (+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs). How do you know it is that projection? Is your shapefile accompanied with a PRJ file with the projection information? The best would be to attach the shapefile with the PRJ file if it has one and we will work directly on it. If you don't feel comfortable attaching your shapefile to the Discussion Forum, you can contact Support at support@thinkgeo.com and we will set you up for uploading your data to us. Thank you. 

 



Thanks for your reply.  I have attached the prj file that goes with the layer in question.  Please take a look and see what you think.


Thanks!


 



Counties.zip (261 Bytes)

Based on the PRJ file with projection string “GEOGCS[“GCS_North_American_1927”,DATUM[“D_North_American_1927”,SPHEROID[“Clarke_1866”,6378206.4,294.9786982138982]],PRIMEM[“Greenwich”,0],UNIT[“Degree”,0.017453292519943295]]”, the PROJ4 equivalent is “+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs” or EPSG 4267. So that should work. Can you send us also the shapefile with its shp, shx and dbf files also, if you don’t mind? So that we can see really what is going on. Thank you.

Here you go.


Thanks.


 



Counties_dbf.zip (424 KB)
Counties_shp.zip (481 KB)
Counties_shx.zip (13.2 KB)

Steven,


Thanks for your data and response.
 
I tried the data with the following code, and it works fine. Also, I tried to load the Counties.shp file in Geodetic84 projection, and following screenshot shows its result.

 

Private Sub DisplayMap_Load(ByVal sender As Object, ByVal e As EventArgs)
ShapeFileFeatureLayer.BuildIndexFile("..\Post7709\Counties.shp", BuildIndexMode.DoNotRebuild)
 
Dim oProj2 As New Proj4Projection(4267, 4326)
Dim oCountiesShp As New ShapeFileFeatureLayer("..\Post7709\Counties.shp")
oCountiesShp.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.SimpleColors.Yellow, 2)
oCountiesShp.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
oCountiesShp.FeatureSource.Projection = oProj2
 
Dim worldLayer As New ShapeFileFeatureLayer("..\..\SampleData\Data\Countries02.shp")
worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, GeoColor.SimpleColors.Green))
worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20
 
Dim staticOverlay As New LayerOverlay()
staticOverlay.Layers.Add("CountiesShp", oCountiesShp)
staticOverlay.Layers.Add("WorldLayer", worldLayer)
winformsMap1.Overlays.Add(staticOverlay)
 
oCountiesShp.Open()
winformsMap1.CurrentExtent = oCountiesShp.GetBoundingBox()
oCountiesShp.Close()
 
winformsMap1.Refresh()
End Sub

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

Yale,


Thanks for the response and for taking the time to test my shapefile.  I pasted your code into my sample app and the counties shapefile still does not show up.  I also tried with several different shapefiles in the NAD27 coordinate system and none of them work.  I then tried with a counites shapefile in NAD83 and it worked fine.  


Something funny is going on, but I don't think it has anything to do with the way I'm coding it, and that's what I really needed to know.


Thanks for your help.


Steve


 


 


 



I also tried your counties shapefile and I loaded it with another counties shapefile in geodetic (4326) projection and the two line up perfectely. You have to be aware that EPSG 4267  (+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs) and EPSG 4326 (+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs) are going to be very similar in coordinates values with at most a few hundreds of meters of difference. And your counties shapefile does not have enough detail to see the difference. Can you also send us the shapefile you are trying to line up the counties shapefile to? Thank you.

Val,


Thanks for your persistance, but my problem is that the counties shapefile I sent to you does not show up AT ALL in my test application, even when I simply paste in the code I received from Yale.  Further none of the my NAD27 shapefiles will work.  ALL of my NAD83 shapefiles work fine, and all of my NAD 83 Zoned Projected shapefiles work fine.  These shapefiles are just stock sample data that ESRI sends with their MapObjects developer kit.  Something is going on that does not meet the eye and I'm not sure it's worth your time to persue.  My objective is only to check out Map Suite to see if it will fullfill our requirements for development and I think the coordinate system support is adequate.


Thanks for your efforts, I really appreciate it.


Steve


 



I think you are right. There is something going on that does not meet the eye and I am sure that this is something easy to fix that prevents you from displaying correctly the shapefile. The thing is that on our side, we give you some solutions but we don’t know how you integrate them within your broader solution. I think that the most efficient thing to do for all of us is for you to send us a self contained sample app that we can run, see the problem and fix it. I know that our control can support what you are asking with projection. This is something pretty basic. Thank you.

Hi Val,


I have put together a small VS 2010 project that just adds two shapefiles to the map.  One of the shapefiles is the Coutries02.shp file that comes installed with Map Suite Desktop.  The other is a States.shp file that is in NAD27 and does not show up (when you attempt to project it to WGS 84.  However, the project is too big to upload as an attachment.  I think you have another way for me to send it to you.  Let me know and I will do that.  Note:  When you unzip the file the folder structure has a 'Data' folder with the States.shp file in it.  You will need to supply the Countries02.shp file.


Thanks,


Steve


 



You can zip the small VS 2010 project and if it is less than 20 megs, you can email it to support at suppot@thinkgeo.com. If it is bigger than that, you can create a support ticket in the Customer Portal and you upload a file up to 100 megs. Let me know what option you choose. Thank you.

Val, 
  
 I have emailed the zip file. 
  
 Thanks, 
  
 Steve

Val, 
  
 The email bounce with the following message: 
  
 <suppot@thinkgeo.com>: host smtp801.microsoftonline.com[65.55.171.153] said: 
     550 5.1.1 User unknown (in reply to RCPT TO command) 
  
 Steve

The regular Support guy is out today. I would not be able to tell you what this message means. So, please, create a support ticket in the Customer Portal. Thank you for your patience in all this. :-)

Hi Val, 
  
 I don’t see how to open a support ticket.  I’m not a real customer yet, I just have the free evaluation version. 
  
 Steve

Steven,


Thanks for your post.
 
Now I wrapped the sample in attachment, you may probably need to reference the DLLs (DeskopEdition.dll and MapSuiteCore.dll) before compile, and then if you want to run, you may need to copy those data files (2 set of shape files) into the data folder or change the data path in the sample code to the corresponding shape file.
 
Besides, if you want to create a ticket and you have no idea how to do it, just feel free to contact our support (support@thinkgeo.com) or sale representative if there is.
 
Any more questions just feel free to let me know.
 
Thanks.
 
Yale

Post7709Sample.zip (12.3 KB)

Hi Yale,


I loaded up the project and ran it and the screenshot below shows the result.  As I said earlier, something strange is going on, in particular with the NAD27 geographic coordinate system.  Note that I don't have any problem if my shapefile data is in NAD83.


Thanks for being so persistent and patient with my problem.  I am beginning to suspect there may be a problem with some component within the Map Suite install that is causing this problem.


Steve



 



Yes, there is something funky going on on your side. I would completely uninstall Map Suite and have a fresh reinstall. By running the sample app, it should show like that:




Val, 
  
 I uninstalled and re-installed, but it didn’t help. 
  
 Steve