ThinkGeo.com    |     Documentation    |     Premium Support

SQL Feature Layer

 Hi,


I have table with around 5 millions rows which I saved road's information on it. there is a field on the table which shows the road type like 'Motorway','ARoad', etc.


I want to shows specific roads on specific ZoomLevelSet.


For example: show Motorway on zoomelevel 1-5 and Motorway & ARoad on ZoomLevel 6-10 ,.... in the other word I want to show more details when we zoom in and less detail when zoom out.


Can I create different SQL-View and then use different datasource for different ZoomeLevelSet?


Would you please suggest me a way to do this?


 


Regards,


Ben


 



Hi Ben, 
  
  Why don’t you create one layer per kind of road type? you can specify the ZoomLevels on where the layer will be visible with ZoomLevel.ApplyUntil

Hi Carlos, 
  
 If I create layer per each type then I need to manually control the visibility of them based on ZoomLevelSet. 
  


Hi,




I tried to use ValueStyle but it works only for small dataset like 100K rows on table.


For my table which has 5 millions row it just doesn't show any thing after 20 minutes.


 


Regards, 

Ben



Hi Ben, 
  
 Thanks for your post, I agree with Carlos’s idea, please don’t worry about “manually control the visibility of them based on ZoomLevelSet”,  because after setting “sqlLayer.ZoomLevelSet.ZoomLevelX.ApplyUntilZoomLevel =  ApplyUntilZoomLevel.LevelY”, sqlLayer will only be visible from zoomlevelX to zoomlevelY automatically. 
  
 If you have any more question, please feel free to ask. 
  
 Best Regards 
  
 Johnny 


Ben,


We use SQL Views to dividie our "Display Roads" into separate views. This is very effective in rendering the map. At certain levels we use all the roads in one table and the valuestyle because we seems to get better results. 


Our mapping app goes from street level maps with building footprints to large US regions.


I hope this helps.


-John



Hi John, 
  
 Thanks for your kind suggestion, I hope this will be helpful to Ben. 
  
 Thanks again, 
  
 Johnny