ThinkGeo.com    |     Documentation    |     Premium Support

Create Smooth Semi-transparent route line

When creating a route the linestyle (routestyle) I am trying to get it to draw as a continuous smooth un-interrupted semi-transparent line. The problem is that when using a linestyle with round caps the overlapping segments are darker than the center of the line and when using flat caps the line sometimes has breaks and when they overlap, they are darker than the rest of the line.


 



Seems that the place to do this would have actually been by setting the linestyle to round and the alpha to 255 then setting entire layer transparency or opacity! But I could not find a way to do that.


Alan



Hi Alan,


You could achieve that by setting the LineStyle to round and the alpha to 255. Please refer to the code below:


routingLayer.RouteStyle.OuterPen.Color = GeoColor.FromArgb(255, GeoColor.StandardColors.Blue);
routingLayer.RouteStyle.OuterPen.SetLineCap(DrawingLineCap.Round, DrawingLineCap.Round, GeoDashCap.Round);
routingLayer.RouteStyle.InnerPen.......
routingLayer.RouteStyle.CenterPen.......


If I misunderstand your meaning please correct me.


Thanks,


Johnny



If I do that I will get a solid line.


I still want the line semi-transparent! So I can still see the street segments underneath. See the sample images below - when using the round cap (start and end) the place where the two line segments overlap are darker than the rest of the line.


 



Hi, Alan


Sorry for my misunderstanding before. Just as you said, we could achieve that by setting the transparency or opacity of the overlay what contains the routinglayer. I have attached a simple sample. Please check it out to see if it fits your requirement. Below is the screenshot:



Thanks,


Johnny


 



2141-Sample.zip (11.6 KB)

Johnny,


 


I finally got a chance to try out the sample you supplied. I have a couple problems with it.


First, I am using the desktop version and not the Web version and I am still using the version 3.x of the Desktop version.  It does not appear that the Desktop 3.x version has "DynamicOverlays"


 


Alan



Hi Alan,


I created another sample for you based on Desktop version. In the sample I connect the route segments to one line, and add this line to routingLayer.Routes. Please check this sample out and try again. If you still have problems, please let me know.


Following is the screenshot:



Thanks,


Johnny



2146-SimpleRoutingSample.zip (11.6 KB)

Works great thanks.


Assuming most people would prefer the look of a continuous line, I would think that it would be built into the routing module that way!


Alan



Alan, 
  
 That’s pretty nice. Thanks for your suggestion, we will add an parameter for GetRoute method or add another utility method for easy to get continuous line in the coming version on 17th June. 
  
 Thanks, 
  
 Johnny 


Were you able to get this into the newly released 4.0.40 version?   If so how do you use it?


Alan 



Allan, 
  
   This did not make it in as far as I know.  The daily builds should be working again next week.  After that we can make the changes and get you a new build.  Please respond back to this to keep it active in our system. 
  
 David

David,


Let me know when you have it ready.


Thanks,


Alan



Alan, we let you that we made a Code Community project on that subject. Thank you for your idea.


code.thinkgeo.com/projects/show/smoothroute


 


 



Alan, 
  
 We have added two overload methods in RoutingEngine:  
  
 public RoutingResult GetRoute(PointShape startPoint, PointShape endPoint, bool isSmoothSemiTransparentRoute)  
 public RoutingResult GetRoute(string startFeatureId, string endFeatureId, bool isSmoothSemiTransparentRoute)  
  
 Please get the latest version(Development brach) and have a try. 
  
 Thanks, 
  
 James