ThinkGeo.com    |     Documentation    |     Premium Support

No visualisation of a ShapeFileFeatureLayer

 Hello everybody,


I'm french so perhaps my english is not really good. I'm begin working with mapsuite and I have a problem.....


My problem is that i can't draw a simple map on a silverlight aplication. I try many different solution but I don't see my map in my browser.


I know it's really basic but with the quick start guide it doesn't work.....


 


Here is my code:


Map1.MapUnit = GeographyUnit.DecimalDegree;


ShapeFileFeatureLayer shpLyr = new ShapeFileFeatureLayer(@"C:\map\roads-all.shp");

shpLyr.Name = "Road";  

 

LayerOverlay overlay = new LayerOverlay();

overlay.Layers.Add(shpLyr);

overlay.Name = "test";



Map1.Overlays.Add(overlay);


 


I tried to draw a rectangle on a layer and it's work...so I'm a little lost....


Please can you tell my what is not good in my code?


thanks



Adrien,


Thanks for your post and questions.
 
Could you try to set the current extent for the map control? Following code snippet shows you how to set the extent to the bounding box of the shape file.

shpLyr.Open();
Map1.CurrentExtent = shpLyr.GetBoundingBox();

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

Thanks for your answer. 
  
 I try to put your snippet code in my own code and it doesn’t work too. 
  
  
  
Map1.MapUnit = GeographyUnit.DecimalDegree;
   
            try 
                {
                    
                    ShapeFileFeatureLayer shpLyr = new ShapeFileFeatureLayer(@“C:\map\roads-all.shp”);
                    shpLyr.Name = “Road”;
                    
                    shpLyr.Open();
                    MessageBox.Show(“open ok”);


                    Map1.CurrentExtent = shpLyr.GetBoundingBox();
                    MessageBox.Show(“Map1.CurrentExtent ok”);

                    LayerOverlay overlay = new LayerOverlay();
                    overlay.Layers.Add(shpLyr);
                    overlay.Name = “test”;
                    MessageBox.Show(“overlay ok”);    

                    

                    Map1.Overlays.Add(overlay);
                }
            catch(Exception ex)
                {
                    MessageBox.Show(ex.ToString());

                }

 
  
 When I start my solution I don’t see the first messagebox. I have an exeption like this: 
  System.IO.IsolatedStorageExeption:unauthorized operation. 
  
 Any idea?? 
  
 Thanks

Adrien,


Thank you for your feedback and code snippet. From your code snippet I found that you didn't set a proper style for the shape file, please use the following code snippet to set style and have another try. 


shpLyr.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Highway1;
shpLyr.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;


In addition, you should pay attention to shape file's projection.  In your shape file you suppose it's in decimal degree unit, but if it's another projection (for example UTM), the map unit should be set to another one (for example GeoGraphyUnit.Meter).


For the exception you encountered, in SilverlightEdition you should load shape file from resource instead of local disk, just as the QuickStartGuide did (wiki.thinkgeo.com/wiki/Map_S...tart_Guide).


Please let us know if you have further questions.


Regards,


Ivan



Thank for your quick answer. 
 I have already try the quick start guide but i work with my own map. And with the quick start’s map It work! 
  
 So I have a question: how can I convert a .dmg map to a .shp map. I try FME but i can’t open the map on mapsuite… 


Adrien, 
  
 Thank you for your feedback. For spatial data transformation, I think FME is enough. Could you please provide us some shape files which are transformed from *.dmg files, then we can track the root cause. 
  
 Regards, 
  
 Ivan