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.)

Example: the red dashed lines show extents of development visible from each VP..

Can I do this in GIS, and if so how / what tools should I be looking at?


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)

  • Thanks for your response - I hadn't thought of using convex hull, that looks particularly useful. However, not quite getting this to work (likely because I'm new to GIS) - I'm using Minimum Bounding Geometry to create convex hull, but that only allows me to do this for one input - does this mean I'd need to include each VP point in my original shapefile for each iteration? Or am I missing something with that? – Lisa SH Jun 6 '14 at 13:21
  • use "dissolve" to create multipoint, then you can use min bounding geometry – radouxju Jun 6 '14 at 13:50
  • Could you elaborate on that please? Like I say, I'm really new to GIS, but I can't see how using 'dissolve' allows me to create a convex hull between two seperate shapefiles, when the toolset only allows one input shapefile? – Lisa SH Jun 6 '14 at 14:15
  • sorry, I didn't read well. You were right, you need to merge VP + point at each iteration. – radouxju Jun 6 '14 at 14:29
  • Thanks again for this - just a note, I was using a single point for VP, but the other points were not points but polygon circles at a specific size, so I couldn't merge these with the viewpoints. So to get it to work I've had to buffer a 1m shape around my VP and merge use this, for anyone else using this thread! – Lisa SH Jun 17 '14 at 14:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.