Select to view content in your preferred language

Create centreline from a polygon

10457
10
01-18-2011 06:28 PM
GarySham
Emerging Contributor
Dear all,

I am working on a project to create a centerline from a polygon automatically. The user select a polygon and click a button, the centerline will create for him.

I have tried the build-in function ???Collapse Dual Lines to Centerline???, but it cannot perform well so I decide not use this function in this project. In further study, I find out some terms such as ???Medial Axis???, ???Skeleton???, ???Voronoi polygon???, those are some concepts related to centerline formation. However, I find difficult to understand those algorithm.

Does anyone have a suggestion to me for this project?
Does anyone have a suggestion for how to implement those concepts in ArcMap?
Is there any sample script or algorithm I can refer to as reference?

Development language: C#, VB.Net
ArcGIS : ArcMap 9.3.1

Best regards,
Gary Sham
0 Kudos
10 Replies
Venkata_RaoTammineni
Regular Contributor
Dear all,

I am working on a project to create a centerline from a polygon automatically. The user select a polygon and click a button, the centerline will create for him.

I have tried the build-in function �??Collapse Dual Lines to Centerline�?�, but it cannot perform well so I decide not use this function in this project. In further study, I find out some terms such as �??Medial Axis�?�, �??Skeleton�?�, �??Voronoi polygon�?�, those are some concepts related to centerline formation. However, I find difficult to understand those algorithm.

Does anyone have a suggestion to me for this project?
Does anyone have a suggestion for how to implement those concepts in ArcMap?
Is there any sample script or algorithm I can refer to as reference?

Development language: C#, VB.Net
ArcGIS : ArcMap 9.3.1

Best regards,
Gary Sham


http://arcscripts.esri.com/details.asp?dbid=15481
0 Kudos
GarySham
Emerging Contributor
Thank you Venkat Tammineni.

The sample software just focus on point layer, but I would like to use the polygon as a input data and generate a centerline for it.
Do you have any idea about this ??

I read some paper about �??Medial Axis�?�, �??Skeleton�?� and seem they are useful concept in this project. However, I cannot understand their algorithm and don't how to implement it.
Do you have any idea about this ??

Regards
Gary Sham
0 Kudos
Venkata_RaoTammineni
Regular Contributor
Thank you Venkat Tammineni.

The sample software just focus on point layer, but I would like to use the polygon as a input data and generate a centerline for it.
Do you have any idea about this ??

I read some paper about �??Medial Axis�?�, �??Skeleton�?� and seem they are useful concept in this project. However, I cannot understand their algorithm and don't how to implement it.
Do you have any idea about this ??

Regards
Gary Sham


You may not directly ...but some how...

http://www.ian-ko.com/resources/howto.htm

http://www.ian-ko.com/ET_GeoWizards/UserGuide/createCenterlines.htm

http://www.crwr.utexas.edu/gis/archydrobook/DataModelFiles/Tutorial/ArcHydroPart1.htm
0 Kudos
GarySham
Emerging Contributor
Thank you for your suggestion.

I know there are some existing tools in the market can perform similar function. However I don't have resource to buy this tools and I cannot modify these tools. So I would like to implement it and fit to my project use.

Do anyone have ideas how to implement it or  sample code/algorithm for reference ?

I find out some concepts (�??Medial Axis�?�, �??Skeleton�?�......) but have no idea how to implement it.

Regards,
Gary Sham
0 Kudos
Venkata_RaoTammineni
Regular Contributor
Thank you for your suggestion.

I know there are some existing tools in the market can perform similar function. However I don't have resource to buy this tools and I cannot modify these tools. So I would like to implement it and fit to my project use.

Do anyone have ideas how to implement it or  sample code/algorithm for reference ?

I find out some concepts (�??Medial Axis�?�, �??Skeleton�?�......) but have no idea how to implement it.

Regards,
Gary Sham


Check below thread it may help you...

http://forums.esri.com/Thread.asp?c=93&f=992&t=83405
0 Kudos
GarySham
Emerging Contributor
Actually, I have searched the esri forum before and find out some related posts. However, they are not very useful in my project. Therefore, I post a new post here to ask anyone for suggestions and ideas.

"http://forums.esri.com/Thread.asp?c=93&f=992&t=83405" seem not useful as it talk about how to construct a line perpendicular to centreline but not talk about how to from a centreline.

I have also gone through
http://forums.esri.com/Thread.asp?c=3&f=38&t=71339&mc=13#msgid190020
http://forums.esri.com/Thread.asp?c=3&f=38&t=71339&mc=13#190147
http://forums.esri.com/Thread.asp?c=3&f=38&t=76045

Regards
Gary
0 Kudos
BradChappell
Emerging Contributor
Try IPoint's ConstrainAngle and ConstrainDistance methods.

On first thought that's where I would start in calculating the vertices of the center line.
0 Kudos
GarySham
Emerging Contributor
Thank you for your suggestion.

I has studied these IPoint's ConstrainAngle and ConstrainDistance methods but don't know how to use these methods to compute the centreline.

Would you mind tell me how do you use these methods to compute the centreline?

Regards,
Gary Sham
0 Kudos
RogerBrown
New Contributor
Gary,

I use the ArcGIS hydrologic flow models within point-density-rasters (or after the PDR is flipped upside down) to find medial axis.

You could form a point-density-raster (PDR) of all intersecting lines, where each line connects a pair of vertexes along the polygon perimeter, then apply a flow model for this PDR flipped upside down to find the "streams" that are candidates for the medial axis.

This sounds tedius but software to form this simple geometry (then threshold everything) could be written.

Hope this suggestion helps you.

Thanks,

Roger
0 Kudos