Skip to main content

Hello all,

I have a street network and a point dataset (of schools).

How do I calculate those streets that represent a 3.5km driven distance from each school?

I can calculate one school at a time, if that is necessary

You can try the NetworkCostCalculator, in order to speed things up you may want to only apply that to objects within a 3.5 km buffer of any given school.


I have something that sort of works

NetworkCostCalculator

MeasureExtractor

ListIndexer

AttributeRangeFilter

 

But the result is not ideal.

For MeasureExtractor I chose Type "Whole Line" which gives me a measure for the whole line, but I suspect I may be better off with Type "Individual Vertex" which I think will give me the driven distance for each vertex of each line.

I was really hoping for a transformer where I specify a driven distance and the output is the road network inside that driven distance


I have something that sort of works

NetworkCostCalculator

MeasureExtractor

ListIndexer

AttributeRangeFilter

 

But the result is not ideal.

For MeasureExtractor I chose Type "Whole Line" which gives me a measure for the whole line, but I suspect I may be better off with Type "Individual Vertex" which I think will give me the driven distance for each vertex of each line.

I was really hoping for a transformer where I specify a driven distance and the output is the road network inside that driven distance

Yes, individual vertex would give you a bit more detail. I did something similar a few years ago for drivetime polygons (pretty much the same process), but found it a very "expensive" process. A 5-minute drivetime polygon in an urban area took about 10-15 minutes to calculate.


Have you looked at this article? https://knowledge.safe.com/articles/30048/creating-time-and-distance-isolines-using-the-netw.html

 

 

If you're only interested in the road links within 3.5 km and not the areas, you don't even have to create the isolines.

Have you looked at this article? https://knowledge.safe.com/articles/30048/creating-time-and-distance-isolines-using-the-netw.html

 

 

If you're only interested in the road links within 3.5 km and not the areas, you don't even have to create the isolines.

Thanks, this helps me make progress.

I am successfully creating contour lines at the interval I need.

But, I really want polygons, so that I can detect if a point is within or without the 3.5km driven distance.

How do I convert the contour lines into polygons?


More progress. I use;

AttributeFilter to only keep the contour intervals I want (keep 3.5km, discard 7km)

LineJoiner to join the contour lines end-to-end into one line

GeometryCoercer to convert the line into a polygon

Which is great!

Except that, within the polygon is a spot that should be a donut hole. But there is no hole. I have a second line outlining the hole and that is its own polygon.

How do I generate a polygon that has a proper donut hole?


Okay, so the trick to building polygons with donut holes is to use AreaBulder, not GeometeryCoercer


Specifically, AreaBuilder with;

CreateDonuts ticked (on) and

Drop Holes = Yes

this creates polygons with donut holes (but the holes are not separate polygon features)


Is there a transformer that can split a line by measure (or elevation)?

And another transformer that can filter features by measure (or elevation)?


Reply