2

I am now using ArcGIS 10.1 and currently a beginner in ArcPy.

There is a project requiring to generate landmark-based route description. I am wondering how to use a buffer to find the landmarks in the neighborhood of the pre-defined route, in additional to provide a relationship between landmark and the route

are there any alternatives way to find out this "landmark-based route description" instead of using ArcGIS existing option?

The final product of the project requires a description of route in every turn/edge, such as:

"Turn right in McDonald to the Manhattan Road"

"Walk along the Manhattan Road, and there is a Park on your right"

It is not necessary to provide a distance in the description, as the target of the description is pedestrian and he/she doesn't really need this piece of information.

  • 3
    Do you refer to the landmark information that was added to the Network Analyst directions since 10.1? Would you please update your question to include more details and examples of what you are trying to achieve? – Alex Tereshenkov Mar 31 '14 at 7:46
2

ArcGIS Network Analyst provides you with a way to specify the point layer that will be used as a landmark layer (go to the "Landmarks tab" section). The point features from this layer will be used when generating the directions of the Route layer. This will let you introduce more specific route guidance with statements like "Turn right at Alan's Hardware Store" or "Pass by the printer station. It will be on your left."

If this is not something that you want to use, you can of course set up an own customized workflow for obtaining those parts of the routing guidance. This can be implemented in multiple steps (by using ModelBuilder and/or Python+ArcPy; can be done with ArcObjects too, but I would stick to the Python option):

  1. You run Solve GP tool for your network analysis layer.
  2. You run some buffering GP operations on the geometry of the solved route to include point features representing landmarks you want to include to the routing directions.
  3. You run Directions GP tool to generate directions for the route and obtain the result as XML or text.
  4. You perform spatial join or attribute based join on your point features and your network edges to push the name of the points into the Directions GP tool output.
  5. You do some minor parsing in the output routing file to clean it up.
  6. The resultant directions text can be shown in the dialog box when running a custom script tool/model or as a message box when running a Python add-in.

In case you would need to access some minor parts of the resultant objects during the analysis, consider using arcpy.na module. In 10.2.1, there is a really nice new function GenerateDirectionsFeatures, (Network Analyst Python module) which, produces text directions as a feature class that pairs each piece of the text direction with a corresponding line feature on the map. You can then use the output feature class to visualize turns and other maneuvers and include your custom landmark data.

  • thanks for your help!:) I have just upgraded my ArcGIS from 10.1 to 10.2.1 (trial). I will try to look into those new features;) May I ask one more question? about the landmark layer, must it be a point feature? What if I have a set of building/line(such as river) i want to set as landmark? is there a way to alter these with existing "landmark tab" function? Or I have to customize a landmark routing guidance with python script, using your suggested workflow? (by the way your suggestions are real nice;D ) – new_world2014 Apr 1 '14 at 7:28
  • I'd like to utilize the Directions widget in ArcGIS API for JavaScript 3.23 to take advantage of this functionality. I can see the landmark description in the directions that are returned from the Network Analyst routing service, but the widget never picks up the text from the directions.features[].events.strings property. Anyone know if the Directions widget supports this functionality? I might have to create a new post for this... – iCode Jan 31 '18 at 14:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.