Finding boundary co-ordinates from given set of point co-ordinates?
There are many algorithms to solve this problem (Wikipedia "Convex_hull_algorithms"):
- Gift wrapping aka Jarvis march — O(nh): One of the simplest algorithms. It has O(nh) time complexity, where n is the number of points in the set, and h is the number of points in the hull. In the worst case the complexity is O(n2).
- Graham scan — O(n log n): Slightly more sophisticated, but much more efficient algorithm. If the points are already sorted by one of the coordinates or by the angle to a fixed vector, then the algorithm takes O(n) time. [pseudo code]
- QuickHull: Like the quicksort algorithm, it has the expected time complexity of O(n log n), but may degenerate to O(nh) = O(n2) in the worst case. [illustrated description]
- Divide and conquer — O(n log n): This algorithm is also applicable to the three dimensional case.
- Monotone chain — O(n log n): A variant of Graham scan which sorts the points lexicographically by their coordinates. When the input is already sorted, the algorithm takes O(n) time.
- Incremental convex hull algorithm — O(n log n)
- Marriage-before-conquest — O(n log h): Optimal output-sensitive algorithm.
- Chan's algorithm — O(n log h): Simpler optimal output-sensitive algorithm .
1)Convex Hull in GRASS GIS: http://grass.fbk.eu/grass64/manuals/html64_user/v.hull.html
2)Convex Hull in Qgis Vector Tools (very easy to use):
What you want is the Convex hull. In PostGIS there is a function (actually GEOS) that gives you the Convex hull, ST_ConvexHull(geometry).
At wikipedia there is a lot of info about concave hulls.