In the context of a wider question, (Generating multiple visibility bearings in ArcGIS as automated procedure?) is it possible to extract bearing information from a particular point or set of points, to extreme tangents of a polygon?
For example, I have a point shapefile with a set of viewpoints (small red dots in image below). I also have a polygon shapefile containing the buffer of another set of points, which outline the exact extents, in m, of my development points (shown in blue below.)
I want to know the extents, in bearing format, of the furthest left tangent point to the furthest right tangent point of the buffer shapefile of my development points. (the red arrows below, i.e. 275 - 282 degrees.)
.
Can I do this in GIS, and if so how / what tools should I be looking at?
Answer
here is a quick answer (to run for each point of view) :
create the convex hull of your set of point + the point of view.
intersect a buffer around the point of view and the resulting polygon with an output as point
compute X and Y of the resulting points (+ the point of view, but this is not necessary)
with the three coordinates, you can measure the angles.
EDIT : for the angle, you can use a script or a direct field computation ( : see https://stackoverflow.com/questions/1211212/how-to-calculate-an-angle-from-three-points for example. Note that it simplifies because P12=P13=the radius of your buffer (let it be R).
so you have
angle = cos-1(2*r^2+ sqrt((P3x-P2x)^2 + (P3y-P2y)^2)/(2*r^2)
No comments:
Post a Comment