I want to find out routes between two given observer positions e.g. shortest routes, least cost routes etc. based on digital elevation model. Furthermore, i want to apply certain kind of restrictions on the selection of routes:
1. Vertices of the routes should be on the edge of a road, canal bank, or railway track.
2. Slope on the DEM along the line between vertices of the route should be within a given value.
3. Any two consecutive vertices should be intervisible and not viewable from some specific given point.
Can anybody tell me that which software provides this functionality. In case if no package is available to solve such a problem, using which technologies i can solve this problem.