<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Well, the changes put in only mitigate the 1/2 world case. As you get towards larger things, like the 3/4 world or all-of-the-world-except-this-bit, things will fall apart again, likely.<div class=""><br class=""></div><div class="">Yes, it’s a balance, and I expect that even this small change will cause a few folks to have some surprise issues.</div><div class=""><br class=""></div><div class="">P<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Aug 14, 2019, at 7:48 AM, Christian Pschierer <<a href="mailto:christian.pschierer@gmx.net" class="">christian.pschierer@gmx.net</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Thanks Paul for the quick reply and the patch!</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Regarding reimplementation with something more explicit, like “ring orientation determines enclosure”.<span class="Apple-converted-space"> </span></span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">I would prefer such a solution. From a users perspective, some polygons are larger than a hemisphere. E.g. great circle mapper: "show me a polygon with 15000km radius around London" (</span><a href="http://www.gcmap.com/mapui?R=15000km@LHR" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">http://www.gcmap.com/mapui?R=15000km@LHR</a><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""><span class="Apple-converted-space"> </span>). This is different from "5000km around a point somewhere in the south Pacific". As a power user I want to be able to force one or the other interpretation.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">To mitigate the knock-on effects, a convenience function might be helpful to automatically reverse the polygon if the area is >>255M square km.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">I can't speak for the implementation complexity though. Especially if such a solution could open new issues, or break existing applications.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Greetings</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Christian</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">On 13 August 2019 at 00:48 Paul Ramsey <<a href="mailto:pramsey@cleverelephant.ca" class="">pramsey@cleverelephant.ca</a>> wrote:<br class=""><br class=""><br class="">So, I have a patch for this, against 3.0, it’s a little big, but can probably also apply against 2.5 and 2.4… it’s not great, it’s just another layer of plaster on top of a shakey foundation. An error in the computation of the XYZ bounding volume is fixed, which exposes more cases where an external point cannot be generated, so a hack to plaster over that issue is also added. At the end of it, these two test cases now return the right answers, though I have not today yet run your clever point field tests to ensure that things look more correct over the whole point field.<br class=""><br class=""> WITH data AS (<br class="">   SELECT<span class="Apple-converted-space"> </span><br class="">     'SRID=4326;POLYGON((-36.5625 40.9798980696201, -22.5 -7.71099165543322,6.328125 -44.0875850282452,130.078125 -49.3823727870096,170.546875 -47.9899216674142,170.546875 69.162557908105,172.96875 75.320025232208,68.203125 77.9156689863258,4.21875 71.3007929163745,-36.5625 40.9798980696201))'::geography AS ply,<br class="">     'SRID=4326;POINT(0 0)'::geography AS pt<br class=""> )<br class=""> SELECT<span class="Apple-converted-space"> </span><br class="">  ST_Distance(ply,pt) AS distance,<br class="">  ST_DWithin(ply,pt,0) AS dwithin_0,<br class="">  ST_DWithin(ply,pt,1) AS dwithin_1,<br class="">  _ST_DistanceTree(ply,pt) AS distance_tree,<br class="">  _ST_DistanceUnCached(ply,pt) AS distance_uncached<br class=""> FROM data;<br class=""><br class="">WITH data AS (<br class=""> SELECT<span class="Apple-converted-space"> </span><br class="">   'SRID=4326;POLYGON((-40.0 52.0, -67.0 -29.0, 102.0 -6.0, -40.0 52.0))'::geography AS ply,<br class="">   'SRID=4326;POINT(4 11)'::geography AS pt<br class="">)<br class="">SELECT<span class="Apple-converted-space"> </span><br class=""> ST_Distance(ply,pt) AS distance,<br class=""> ST_DWithin(ply,pt,0) AS dwithin_0,<br class=""> ST_DWithin(ply,pt,1) AS dwithin_1,<br class=""> _ST_DistanceTree(ply,pt) AS distance_tree,<br class=""> _ST_DistanceUnCached(ply,pt) AS distance_uncached<br class="">FROM data;<br class=""><br class="">One thing that leaks into this “fix” is an assumption of CCW exterior ring orientation for polygons that fail the usual external point computation phase (generally, large ones). So orientation is starting to rear its head, but only for special cases.<br class=""><br class="">Lots of thinking left to do,<br class=""><br class="">P<br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class="">On Aug 12, 2019, at 9:55 AM, Paul Ramsey <<a href="mailto:pramsey@cleverelephant.ca" class="">pramsey@cleverelephant.ca</a>> wrote:<br class=""><br class="">You are exposing a limitation in the postgis geodetic implementation, namely that we don’t handle things larger than a hemisphere well. This is not unlike the SQL Server 2008 limitation, except we don’t toss errors at you.<br class=""><br class=""><a href="https://alastaira.wordpress.com/2012/01/27/ring-orientation-bigger-than-a-hemisphere-polygons-and-the-reorientobject-method-in-sql-server-2012/" class="">https://alastaira.wordpress.com/2012/01/27/ring-orientation-bigger-than-a-hemisphere-polygons-and-the-reorientobject-method-in-sql-server-2012/</a><span class="Apple-converted-space"> </span><<a href="https://alastaira.wordpress.com/2012/01/27/ring-orientation-bigger-than-a-hemisphere-polygons-and-the-reorientobject-method-in-sql-server-2012/" class="">https://alastaira.wordpress.com/2012/01/27/ring-orientation-bigger-than-a-hemisphere-polygons-and-the-reorientobject-method-in-sql-server-2012/</a>><br class=""><br class="">The second part of the blog post is instructive, in that it shows that “fixing” the problem will just migrate a new problem out to users with small, but mis-oriented polygons. What they think of as local objects (parcels, cities, whatever) will, to their surprise, suddenly become nearly-global.<br class=""><br class="">There’s some interesting stuff in the SQL Server documentation, in particular the idea of using circular envelopes for geographic objects, which has a certain appeal, but would necessitate a pretty major re-write of geography.  <br class=""><br class="">There’s actually two “hemisphere problems” to deal with in any geodetic database:<span class="Apple-converted-space"> </span><br class=""><br class="">- what is the correct interpretation of an edge from A to B, since there are two paths between A and B over the great circle that joins them<br class="">- what is the correct interpretation of a ring<br class=""><br class="">The PostGIS geodetic attempts to use “take the smaller thing”, but imperfectly, as you have demonstrated. The question is whether to continue to patch that up, or attempt to reimplement with something more explicit, like “ring orientation determines enclosure” and accept all the other knock-on issues that arise as people try and load mis-oriented rings into the system.<br class=""><br class="">It’s a very interesting and challenging topic, thanks for investigating, I particularly like your point-field method of visualizing the issues with the algorithm, which are associated with the point-in-polygon routine. Point-in-polygon is one of those algorithms that is challenging on the sphere, and more so when what is “in” the polygon is not necessarily clear.<br class=""><br class="">ATB,<br class=""><br class="">P<br class=""><br class=""><blockquote type="cite" class="">On Aug 9, 2019, at 9:53 AM, Christian Pschierer <<a href="mailto:christian.pschierer@gmx.net" class="">christian.pschierer@gmx.net</a><<a href="mailto:christian.pschierer@gmx.net" class="">mailto:christian.pschierer@gmx.net</a>>> wrote:<br class=""><br class="">Hi Darafei,<br class=""><br class="">yes, the MakeBox example was not a good one. Even though the basic question -- which rule determines inside and outside of a large geography polygon -- remains the same.<span class="Apple-converted-space"> </span><br class=""><br class="">But the problem is a different one:<span class="Apple-converted-space"> </span><br class="">SELECT ST_Distance(ST_GeomFromText('POLYGON((-36.5625 40.9798980696201, -22.5 -7.71099165543322,6.328125 -44.0875850282452,<br class="">130.078125 -49.3823727870096,170.546875 -47.9899216674142,170.546875 69.162557908105,<br class="">172.96875 75.320025232208,68.203125 77.9156689863258,4.21875 71.3007929163745,<br class="">-36.5625 40.9798980696201))')::geography  , ST_Point(0, 0)) / 1000<br class="">return 0 in PostGis 2.5.2. (as expected)<span class="Apple-converted-space"> </span><br class=""><br class="">However: ST_Intersect or ST_DWithin on the same geometries return false. Distance 0 and Intersects=false does not make sense.<span class="Apple-converted-space"> </span><br class="">The culprit is the bounding-box check in the latter two function ( OPERATOR(public.&&) ).<span class="Apple-converted-space"> </span><br class=""><br class="">Test Case:<span class="Apple-converted-space"> </span><br class="">Create a sample dataset with one point per 1x1 degree:<span class="Apple-converted-space"> </span><br class="">CREATE MATERIALIZED VIEW public.tmp_points_1x1 AS (<span class="Apple-converted-space"> </span><br class="">SELECT row_number() over() AS eid, ST_Translate(point, j, i) AS geom<span class="Apple-converted-space"> </span><br class="">FROM<span class="Apple-converted-space"> </span><br class="">generate_series(-89, 89) AS i,<span class="Apple-converted-space"> </span><br class="">generate_series(-180, 179) AS j,<span class="Apple-converted-space"> </span><br class="">(SELECT ('POINT(0 0)')::geometry AS point) AS b )<br class=""><br class="">Now select from this dataset:<span class="Apple-converted-space"> </span><br class="">SELECT eid,ST_SetSRID(geom, 4326) FROM tmp_points_1x1<span class="Apple-converted-space"> </span><br class="">WHERE ST_Distance(geom::geography, ST_GeomFromText('POLYGON((-36.5625 40.9798980696201, -22.5 -7.71099165543322,6.328125 -44.0875850282452,<span class="Apple-converted-space"> </span><br class="">130.078125 -49.3823727870096,170.546875 -47.9899216674142,170.546875 69.162557908105,<span class="Apple-converted-space"> </span><br class="">172.96875 75.320025232208,68.203125 77.9156689863258,4.21875 71.3007929163745,<span class="Apple-converted-space"> </span><br class="">-36.5625 40.9798980696201))')::geography ) <= 0.0<br class=""><br class="">returns the expected result:<span class="Apple-converted-space"> </span><br class=""><image.png><span class="Apple-converted-space"> </span><br class=""><br class="">ST_Intersects leaves a hole around the point 0, 0!<span class="Apple-converted-space"> </span><br class="">SELECT eid,ST_SetSRID(geom::geography, 4326) FROM tmp_points_1x1<span class="Apple-converted-space"> </span><br class="">WHERE ST_Intersects(geom::geography, ST_GeomFromText('POLYGON((-36.5625 40.9798980696201, -22.5 -7.71099165543322,6.328125 -44.0875850282452,<span class="Apple-converted-space"> </span><br class="">130.078125 -49.3823727870096,170.546875 -47.9899216674142,170.546875 69.162557908105,<span class="Apple-converted-space"> </span><br class="">172.96875 75.320025232208,68.203125 77.9156689863258,4.21875 71.3007929163745,<span class="Apple-converted-space"> </span><br class="">-36.5625 40.9798980696201))')::geography )<br class=""><image.png><span class="Apple-converted-space"> </span><br class=""><br class="">&& leaves 2 holes and select a lot of additional points outside of the expected bounding box.<span class="Apple-converted-space"> </span><br class="">SELECT eid,ST_SetSRID(geom, 4326) FROM tmp_points_1x1<span class="Apple-converted-space"> </span><br class="">WHERE geom::geography OPERATOR(public.&&) ST_GeomFromText('POLYGON((-36.5625 40.9798980696201, -22.5 -7.71099165543322,6.328125 -44.0875850282452,<span class="Apple-converted-space"> </span><br class="">130.078125 -49.3823727870096,170.546875 -47.9899216674142,170.546875 69.162557908105,<span class="Apple-converted-space"> </span><br class="">172.96875 75.320025232208,68.203125 77.9156689863258,4.21875 71.3007929163745,<span class="Apple-converted-space"> </span><br class="">-36.5625 40.9798980696201))')::geography<br class=""><image.png><span class="Apple-converted-space"> </span><br class=""><br class="">Greetings<span class="Apple-converted-space"> </span><br class="">Christian<span class="Apple-converted-space"> </span><br class=""><br class=""><blockquote type="cite" class="">On 09 August 2019 at 14:56 "Darafei \"Komяpa\" Praliaskouski" <<span class="Apple-converted-space"> </span><a href="mailto:me@komzpa.net" class="">me@komzpa.net</a><span class="Apple-converted-space"> </span><<a href="mailto:me@komzpa.net" class="">mailto:me@komzpa.net</a>>> wrote:<br class=""><br class=""><br class="">Hi Christian,<br class=""><br class="">To understand the query please try plotting your polygon on a globe and<br class="">then imagine axis aligned box that will contain it (one side parallel to<br class="">equator, other parallel to 0 and third to 90th meridian). You will see that<br class="">your "large" geometry is really 40 degrees wide spot around antimeridian.<br class="">To visualize it better using common planar GIS tools, feed it into<br class="">geography ST_Segmentize - it will produce the actual 'curved' geometry used<br class="">in calculation. To see closer to behavior you expect, make sure there are<br class="">no points connected by longer, not shorter, part of Great Circle, as in<br class="">your example.<br class=""><br class="">Hope this helps.<br class=""><br class="">On Thu, Aug 8, 2019 at 2:46 AM Christian Pschierer <<br class=""><a href="mailto:christian.pschierer@gmx.net" class="">christian.pschierer@gmx.net</a><span class="Apple-converted-space"> </span><<a href="mailto:christian.pschierer@gmx.net" class="">mailto:christian.pschierer@gmx.net</a>>> wrote:<br class=""><br class=""><blockquote type="cite" class="">Hi,<br class=""><br class="">we found some unexpected results when doing spatial queries on very<br class="">large geography polygons. For example<br class=""><br class="">SELECT ST_Distance(ST_SetSRID( ST_MakeBox2D(ST_Point(160,<br class="">60),ST_Point(-160,-60)), 4326)::geography,ST_SetSRID(ST_Point(0, 0),<br class="">4326)::geography)/1000<br class=""><br class="">returns 13130km instead of 0 as the point 0,0 should be inside this polygon.<br class=""><br class="">Queries on smaller search areas, or geometry queries return 0.<br class=""><br class="">SELECT ST_Distance(ST_SetSRID( ST_MakeBox2D(ST_Point(60,<br class="">60),ST_Point(-60,-60)), 4326)::geography,ST_SetSRID(ST_Point(0,<br class="">0),4326)::geography)/1000<br class=""><br class="">SELECT ST_Distance(ST_SetSRID( ST_MakeBox2D(ST_Point(160,<br class="">60),ST_Point(-160,-60)), 4326),ST_SetSRID(ST_Point(0, 0), 4326))/1000<br class=""><br class="">It seems like PostGis switches inside/outside on geographies if they<br class="">exceed a certain size. Is this correct? Is there a way to control this<br class="">behaviour?<br class=""><br class="">Greetings<br class="">Christian<br class=""><br class="">_______________________________________________<br class="">postgis-users mailing list<br class=""><a href="mailto:postgis-users@lists.osgeo.org" class="">postgis-users@lists.osgeo.org</a><span class="Apple-converted-space"> </span><<a href="mailto:postgis-users@lists.osgeo.org" class="">mailto:postgis-users@lists.osgeo.org</a>><span class="Apple-converted-space"> </span><br class=""><a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" class="">https://lists.osgeo.org/mailman/listinfo/postgis-users</a><span class="Apple-converted-space"> </span><<a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" class="">https://lists.osgeo.org/mailman/listinfo/postgis-users</a>><span class="Apple-converted-space"> </span><br class=""></blockquote><br class=""><br class=""><br class="">--<br class="">Darafei Praliaskouski<br class="">Support me:<span class="Apple-converted-space"> </span><a href="http://patreon.com/komzpa" class="">http://patreon.com/komzpa</a><span class="Apple-converted-space"> </span><<a href="http://patreon.com/komzpa" class="">http://patreon.com/komzpa</a>><span class="Apple-converted-space"> </span><br class="">_______________________________________________<br class="">postgis-users mailing list<br class=""><a href="mailto:postgis-users@lists.osgeo.org" class="">postgis-users@lists.osgeo.org</a><span class="Apple-converted-space"> </span><<a href="mailto:postgis-users@lists.osgeo.org" class="">mailto:postgis-users@lists.osgeo.org</a>><span class="Apple-converted-space"> </span><br class=""><a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" class="">https://lists.osgeo.org/mailman/listinfo/postgis-users</a><span class="Apple-converted-space"> </span><<a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" class="">https://lists.osgeo.org/mailman/listinfo/postgis-users</a>><span class="Apple-converted-space"> </span><br class=""></blockquote>_______________________________________________<br class="">postgis-users mailing list<br class=""><a href="mailto:postgis-users@lists.osgeo.org" class="">postgis-users@lists.osgeo.org</a><span class="Apple-converted-space"> </span><<a href="mailto:postgis-users@lists.osgeo.org" class="">mailto:postgis-users@lists.osgeo.org</a>><br class=""><a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" class="">https://lists.osgeo.org/mailman/listinfo/postgis-users</a><br class=""></blockquote><br class=""></blockquote><br class="">_______________________________________________<br class="">postgis-users mailing list<br class=""><a href="mailto:postgis-users@lists.osgeo.org" class="">postgis-users@lists.osgeo.org</a><br class=""><a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" class="">https://lists.osgeo.org/mailman/listinfo/postgis-users</a><br class=""></blockquote><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">postgis-users mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><a href="mailto:postgis-users@lists.osgeo.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">postgis-users@lists.osgeo.org</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://lists.osgeo.org/mailman/listinfo/postgis-users</a></div></blockquote></div><br class=""></div></body></html>