ThinkGeo.com    |     Documentation    |     Premium Support

SQLSever 2008 Views

I want to show a layer based on Longitude,Latitude columns, but i'm having a lot of dificulties.


Can you guys take a look at the example i send as attachment?


Thank you in advanced.



2107-sProblemWithViews.zip (162 KB)

Hi, Rui 
  
 We can’t run your web app unless we have the same Database with you. Please provide us with it so that we could address it quickly. 
  
 Thanks, 
 Khalil

Hello,


sorry i was on vacations.


Just plug the code into a fresh new SQLServer 2008 Database and it should work.


The Views are created by the code againt static data.



So, do you still need help on that one or are you fine now? If you still need help, please send us the database and we will be happy to assist you.

Here it is.



DBThinkGeo.zip (116 KB)

Rui, 



I checked the code and found you used the View instead of Table.  I think ’s the reason. The MsSql2008FeatureLayer just supports Tables but not Views.  



Any questions please let us know. Thanks. 



Johnny



Rui, 
  
   I think we should be able to support views.  Let me look into this and I will get you something tomorrow. 
  
 David

Hello David.


ThinkGeo supports Views, but not this View and i can't figure out why.


Any idea?



Rui, 
  
 I will try creating views in database instead of creating them on the fly. Just as David said, we wil give you something tomorrow. 
  
 Thanks, 
 Johnny

OK


The first intent to create the views in the fly was for me not need to send you the Database.


 



 


Hello Rui,
 
Thanks for your patience, I think I can give your something today. I have tested your sample and found the problem is caused by that MsSql2008FeatureLayer doesn’t find the column which represents geometry/geography data for your view. 
 
I have updated our MapSuiteCore to make it works. Please confirm with it according to the screen-shot which I attached. You can get the new MapSuiteCore DLL in the version 4.0.49.0 or later. When you login the helpdesk.thinkgeo.com and you can find them at the download page.
 


 
And another thing is that you need to use projection for your layer, because your data is obviously decimal degree unit, but you using GoogleMap as background that using Spherical Mercator projection, so if you want to show your data on the top of Google Map, you can look at following code:
        Dim proj As Proj4Projection = New Proj4Projection()
        proj.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326)
        proj.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString()
        sql2008Layer.FeatureSource.Projection = proj

 
And if the data type is “geometry” not “geography”, you set srid to 0:
sql2008Layer.Srid = 0
 
Please let me know if you have more questions.
 
Thanks
 
James

Great. The data seems to be in the right place :)


I'll give it a try.


Thanks!



Rui, 
  
 I am glad the data is showing the right place.  
  
 Please let me know your trying result. 
  
 James