ThinkGeo.com    |     Documentation    |     Premium Support

MsSql2008FeatureLayer - Nothing shown on the map

Hi,


I'll need some support regarding the
"MsSql2008FeatureLayer" function.  It's not showing anything on
the map.



Below are the details.



- SQL Server



- Visual Studio 2013


- WPF, C#


- ThinkGEO MapSuite 9.0 (Full license)


From the DB side



- I have a table with a field defined as
"geometry" type named "geometrylocation".


From the code side



- Here's how I wrote the data into the database


rampCondition.geometrylocation =
DbGeometry.FromText(selectedCurbramp.GetWellKnownText(), 4326);







- Here's how I used the MsSql2008FeatureLayer class to draw
on the map



var connString = @"data
source=(localdb)\MSSQLLocalDb;attachdbfilename=|DataDirectory|\Denver_CurbRamp.mdf;integrated
security=True;connect timeout=30;MultipleActiveResultSets=True;";



MsSql2008FeatureLayer curbrampcollectedLayer = new
MsSql2008FeatureLayer(connString, "Curb_Ramp_Condition",
"ID", 4326);


curbrampcollectedLayer.CustomGeometryColumnName =
"geometrylocation";



curbrampcollectedLayer.IsVisible = true;


curbrampcollectedLayer.Name =
"curbrampscollected";


curbrampcollectedLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle
= new PointStyle(PointSymbolType.Star, new
GeoSolidBrush(GeoColor.StandardColors.Red), 100000);


curbrampcollectedLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle
= AreaStyles.Country1;


curbrampcollectedLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle
= LineStyles.Railway2;


curbrampcollectedLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel
= ApplyUntilZoomLevel.Level20;


curbrampcollectedLayer.Open();



shpOverlay.Layers.Add("curbrampscollected",
curbrampcollectedLayer);


curbrampcollectedLayer.FeatureSource.Open();


Collection<Feature> fs =
curbrampcollectedLayer.FeatureSource.GetAllFeatures(ReturningColumnsType.AllColumns);


collectedRectangle = curbrampcollectedLayer.GetBoundingBox();


curbrampcollectedLayer.FeatureSource.Close();


theMap.Refresh();



Please advise.



Thanks in advance!



 


Vincent



Hi Vincent, 
  
 Thanks for your detailed description, I guess there isn’t any problem with the code you attached here, maybe something wrong with the setting of the map object, here are some possible reasons: 
  
 1. What’s the srid of the data in the SQL Server? It’s Decimal Degree or some other prjects? the MapUnit property of map object should be corresponding to the data saved in the database. For example, if the SRID is “EPSG:4326”, the MapUnit should be DecimalDegree, otherwise, it may be Meter or Feet. Please check it out. 
  
 2. What’s the current extent of map object, check if it’s the place where the data are locating. 
  
 If these still don’t work, please give a demo to us for debug. 
  
 Thanks, 
 Johnny

Hi Johnny,



Thanks for the feedback!  Here’s what I’ve tried and it’s still not working.



1) I’ve used SRID=4326 and tried setting the MapUnit to “Feet”, “Meter” & “DecimalDegree”.  To provide a little more background info, on the map, I have also loaded two shapefiles in the background.  These two shapefiles load up nicely on the map when the unit is set to “DecimalDegree”.  They are being added as two separate layers.  What it’s not working is the layer that was added using the “MsSql2008FeatureLayer” function.



2) I’ve set the map’s current extent using the “boundingbox()” function.  Again, nothing shows up.



How can I send you the demo project?  I’ve zipped the project folder with a size of ~60mb.



Please let me know.



Thanks again,



Vincent

Hi Vincent, 
  
 Thanks you for all the trying,if the SRID=4326, I guess the MapUnit as DecimalDegree is ok. Another try that we can make is calling the “GetFeaturesInsideBoundingBox” with the map’s current extent to see if there is any features returned, if not, I guess should be something wrong with configurations of database, otherwise, should be something wrong with the code. Anyway, there are 3 options that you can update the demo to us: 
  
 1. Attached in the thread, but just limited to a really small image or file. 
 2. Send it to forumsupport@thinkgeo.com, but limited to the size less than 8MB, I guess. 
 3. Ask support@thinkgeo.com for a FTP address, and then you can upload it there. 
  
 Once you uploaded, please let me know. 
  
 Thanks, 
 Johnny