ThinkGeo.com    |     Documentation    |     Premium Support

Street Names and Zoom Level

Hello,

  I have a map showing streets with the extent set on loading.  I am also loading the shp file with the street names.  The street names show when I zoom in but not at a higher zoom level (zoom out).  

  Maps such as Google and Yahoo show the interstate names at a higher (think altitude) zoom level, then as one zooms in, the major highways have names.  If you zoom in even more the side streets also have names.

  Also, the interstates, highways, and side streets are different colors.  How is this effect achieved?  How can I make the map look nice, something along the lines of Google, Yahoo or  Virtual Earth?

  

  Thanks,

    Steven


 



Steven,



We have a algorism to suppress the label on the line. In your case may be the font-size is too big and it draws outside the line segment, so that the line is suppressed. I think the property below fixs your issue.

layer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.TextLineSegmentRatio = 100;


We have an online world map kit sample at: map.thinkgeo.com/

It looks beautiful. And you can also implement your own beautiful map. To implement this kind of map, you should debug the zoom levels and styles for your existing data.



Let’s say you have three layers (interstates, highways, side streets); every layer has its own LineStyles and ZoomLevel settings; for example:

interstatesLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Interstate1;
interstatesLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

highwaysLayer.ZoomLevelSet.ZoomLevel06.DefaultLineStyle = LineStyles.Highway1;
highwaysLayer.ZoomLevelSet.ZoomLevel06.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

sideStreetsLayer.ZoomLevelSet.ZoomLevel16.DefaultLineStyle = LineStyles.LocalRoad1;
sideStreetsLayer.ZoomLevelSet.ZoomLevel16.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;


In this way, you will get different color for different road. That’s the same case as labels on the road. It’s just another layer overlaps on the existing layers.



We can implement all kind styles of map with Map Suite Products; the only thing we need is your feeling and designing of the map.



Hope it makes sense. Any queries please let me know.



Thanks,

Howard



Howard,


  The online world map kit sample at: map.thinkgeo.com/ looks really good!  Is that source available?  I think it would answer many of my beginner questions.

 


Thanks,


  Steven



Steven, 



The code source of World Map Kit is not available for free. If you can purchase it, you will get all the rendering code and related ShapeFile data. Please contact support@thinkgeo.com for more information about it. 



Just let me know if you have any questions. 



Thanks, 

Howard



I am attempting to load a map that has only the interstate details on it.  Then I will add the major highways, etc.  The following code shows all streets of any kind.  What am I doing wrong? 
  
                 //Interstate Layer 
                 ShapeFileFeatureLayer interstateLayer = new ShapeFileFeatureLayer(Server.MapPath("~/App_Data/ILlkA.shp")); 
                 interstateLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = 
                     LineStyles.CreateSimpleLineStyle(GeoColor.FromArgb(255, 218, 172, 33), 
                         10F, 
                         GeoColor.StandardColors.Black, 
                         5F, 
                         true); 
                 interstateLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Interstate3; 
                 interstateLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.TextLineSegmentRatio = 100; 
                 interstateLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; 
                 interstateLayer.Name = (“interstateLayer”); 
                 interstateLayer.DrawingMarginPercentage = 10; 
                 Map1.StaticOverlay.Layers.Add(interstateLayer); 
  
                 //interstateLayer = (ShapeFileFeatureLayer)Map1.StaticOverlay.Layers[“interstateLayer”]; 
                 interstateLayer.Open(); 
                 DataTable dataTable = interstateLayer.QueryTools.ExecuteQuery(“Select * From ILlkA Where FETYPE = ‘Expy’”); 
                 interstateLayer.Close(); 
  
 Thanks, 
   Steven

Steven, 
  
 Thanks for your post! 
  
 I am not exactly sure what is your problem? Is the Map not shown correctly or the styles used to render the road are not expected? Or any other kinds of unexpected problems? 
  
 I reviewed your code above and find one minor issue: You set the LineStyle for interestateLayer twice, so the first line style which is created by “CreatedSimpleLineStyle” will be discarded, and the style to render the road should be “LineStyles.Interstate3”. 
  
 Any more information will be appreciated. 
  
 Thanks. 
  
 Yale 


What i want to do is create a layer with only the interstates in that layer.

Yale, 
   Please disregard my last post.  I believe Ryan has me started well. 
  
 Thanks, 
   Steven

Steven, 
  
 Thanks for letting me know! 
  
 Any more problem just let me know. 
  
 Thanks. 
  
 Yale

Hi, 
  
 How do I find the Street shape name for a particular area / city from the ThinkGeo Map 3.0 cd ? 
  
  
 Thanks. 
  
 Raja.

Raja, 
  
 I’m not quite sure your exact requirement. There is a related sample in our installed package at “\Samples\Features\LengthOfAFeature.aspx”. Please have a look at it. Also, if it doesn’t satisfy your requirement; please provide more information such as the condition or how do you want to find the shape. 
  
 Looking forward your feedback. 
  
 Thanks, 
 Howard

 Hi Howard,


 


Thanks for your reply.  Actually I have the ThinkGeo cd which is having the shapes. I need the street shapes to loaded in our application as start up . But I donu how to get a particular area street map from the cd. For example Florida city map of some particular street I want to show .. How do I get it exactly..  Not by code.. I need the logic it stored in the cd. 


Thanks.


C.Raja.



Hi Raja, 
  
 I assume that the shape name is the name of the physical Shape file name. I’m not sure what the condition to find these shape names; so that I assume that you have known the bounding box you want to search when the app start up. To find the shape file names, we have several ideas but not high performance. For example, you can loop through the shape files, if its Well Know Type equals to LineString or MultilineString, then see if its bounding box is including in the condition bounding box; or to query if the features through the condition bounding box. If it is true or has features in the bounding box; it’s the shape files you needed. If you want to have higher performance, please pre-generate a XML file which contains the shape file set you want to use. 
  
 I’m not sure if I misunderstand your requirement. So please let me know if you have any questions. 
  
 Thanks, 
 Howard