I am new here and points poor so I can only offer 50 pt bounty.
Suppose I have an application a search for all gas stations within 10 mile radius of a certain location. However one side of this location is surrounded by a mountain range that you have to drive 50 miles to get around. You would not want to return results from the other side of the mountain. What are some good algorithms/techniques to deal with such a problem? I know with point to point searches you can use path costs but I am not sure what the technique is with radius searches.
Here is an example:
The red line is a chord on the radius circle from 40,-74 to 41,-72 lat long (not accurate just saying) The user at 40,-73 performs a geographic radius search for something which also encompasses areas across the LI sound in Connecticut which are impractical to get to. The algorithm should know that there exists a chord completely intersecting the search circle and not return results that are on the other side of that chord. So only points in the green area would get returned.
This should be able to be done without any road network analysis if the programmer defines these bounding lines. For instance there may be an area in some country that is dangerous to pass through and you would want people on either side of that area to be restricted to that side. Or an international border etc. I am just asking this because I am pretty sure people are doing this.