Please refer to screenshot attached.
I calculated a route along the entire length of a street segment feature. The Cost value is consistent with the data, but the Distance value is way off. The Drive Directions says the path distance is 1098 feet, but the Measure Tool says 815 feet - a deviation of about 35%.
The Distance attribute of the ND is using Shape_Length which is in decimal degrees, but I have Feet specified as the Distance Display Units in the ND Directions Agent. It seems that the conversion from Decimal Degrees to Feet that the Directions Agent is using is not consistent with the conversion options in the Measure Tool, unless I've made a mistake somewhere. Any ideas? Thanks in advance!
Solved! Go to Solution.
ESRI is now saying this works as designed because Shape_length does not include any spatial reference, so they have to use some default projection. This makes sense, and the moral of the story is to always use Shape instead of Shape_Length for your distance attributes whenever you are needing the Drive Directions agent to convert distances between geodetic and planar values.
I just tried setting the map data frame to NAD 1983 State Plane. The results are still inconsistent between the Drive Directions summary and the Measure tool. My bigger problem is that the application I have developed is using ArcGIS Engine Network Analyst extension and there isn't a Map Data Frame supplied as an input to the Solver. I only went to ArcMap to verify what I was seeing in Engine. The Measure Tool is giving the correct "real world" distance - it's the Drive Directions Agent that is not converting properly.
Set a projection for the dataframe and try again.
Better still project your data to a known coordinate system and put it in its own data frame. If you do this, remember that meters rule for output projected coordinates, so if you have to work in feet, then you may wish to use an appropriate projection which has US feet as their base output unit.
For anybody that is interested, it appears to be a bug in Network Analyst after speaking with ESRI. I noticed that when I defined the length evaluator using the Shape_Length field (in decimal degrees), the drive directions distance value being displayed was wrong. But, if I used the Shape field instead, it was correct. Both fields are managed by the geodatabase, so the actual value in Shape_Length was accurate. But, when converting from geodesic to planar, Network Analyst is taking the Shape_Length value (which is just a double data type) and projecting it to Web Mercator. Using the Shape field instead seems to provide enough additional information (such as spatial reference) to allow Network Analyst to make the conversion from geodesic to planar correct.