I want to do a simple 500 meters service area analysis in network analyst. But my facilities are not points but polygons (green parks). I don't want to use making the centroid of each polygon as the facility method because I think the service polygons resulting from that will be somewhat inaccurate especially for larger parks. Is there any other idea to do this?
Do you have your street data (ie, you're not working in ArcGIS Online)? If so, try this:
- Add the network dataset's junction feature class to the map. This is the automatically-generated feature class of network junctions (like intersections) that lives in the same feature dataset as the network.
- Do a Select by Location and select all junctions within some very small distance of the park boundaries.
- Export the selected junctions to a new feature class. These selected junctions can serve as a sort of proxy for park entrances. You can use them as input for your network analysis.
But then there will always be a possibility of some parks not finding any junction within that little distance and therefore being ignored in the analysis. I would rather take the centroid approach and get approximate distances than totally ignore some parks.
That is a possibility, so you just need to experiment a little with the buffer distance until you get what you're looking for. Or if you have one particularly problematic park, manually edit in some entrance points.
How do you go about doing a "Select by Location" to select all junctions within a certain distance of the park boundaries? Would this be done through the "Select layer by location" tool? If so then this doesn't seem to allow me enter the network junctions as the input feature layer, as it doesn't allow you to load data from geodatabases, only files. So as the network junctions feature class is within a geodatabase, and I can't seem to copy it into a file to select it from here instead, I'm not sure how to work round this
The only thing that I could add to Melinda's suggestion is that you could automate this workflow with python or modelbuilder. What I'd do is create points for where the park boundaries intersect the edges of the network dataset. This could be done using something as simple as converting your polygons to lines and processing them against the intersect tool to create points or more advanced like using the geometry objects in python to determine to intersecting points. Once you have the intersecting points you could use them as facilities to build your service area. At the end you'd need to merge all of the service areas together to display the result as if you were using the polygon, but you'd also need to handle the overlap between each of the larger impedance values.
I just got another idea. What about using the erase tool to erase parks from the street network. Then the streets will start only from outside the park polygons. Then the resultant service layer using park centroids would be accurate. What do you guys think?