On 17 September 2010 10:51, Carlos Eduardo <[email protected]> wrote: > So, the logic that I thinked was to get three of the points of the polygon, > and taking the middle point as the origin point, and the two others to > make the lines, and then calc the angle between this two lines. if it is > close to 180 degrees, > i can remove the middle point.
I wouldn't be too sure about that. Just because there are three points in lat/long with 180 degrees apart does not mean that it is a straight line when projected (e.g., in Google Maps). The distortion increases when you get near the poles, and when you have large polygons/lines. It all depends on how the great circles are used/interpreted since lat/long is _not_ Cartesian, unless you are in a small region near the equator. To get to your base question, you can determine the angle of two points with ST_Azimuth(pointA, pointB). So you can use this function with some vector math to get the angle between three points. Also, try ST_Simplify(geomA, tolerance) to see if it does what you are trying to accomplish. It will probably be easier than reinventing the wheel. -Mike _______________________________________________ postgis-users mailing list [email protected] http://postgis.refractions.net/mailman/listinfo/postgis-users
