<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div class=""><font face="Courier New" class="">Dear all,</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">I define a polygon (Poly 1) which extends over the date line. Point 1 clearly is inside Poly 1.</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">geoDB=> SELECT ST_DWITHIN(ST_GeogFromText('POINT(180 0)'), ST_GeogFromText('POLYGON((170 -1, 190 -1, 190 1, 170 1, 170 -1))'), 0);</font></div>
<div class=""><font face="Courier New" class="">NOTICE:  Coordinate values were coerced into range [-180 -90, 180 90] for GEOGRAPHY</font></div>
<div class=""><font face="Courier New" class=""> st_dwithin </font></div>
<div class=""><font face="Courier New" class="">------------</font></div>
<div class=""><font face="Courier New" class=""> t</font></div>
<div class=""><font face="Courier New" class="">(1 row)</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">If I have a closer look at this polygon it shows the representation below.</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">geoDB=> SELECT ST_ASEWKT(ST_GeogFromText('POLYGON((170 -1, 190 -1, 190 1, 170 1, 170 -1))'));</font></div>
<div class=""><font face="Courier New" class="">NOTICE:  Coordinate values were coerced into range [-180 -90, 180 90] for GEOGRAPHY</font></div>
<div class=""><font face="Courier New" class="">                        st_asewkt                        </font></div>
<div class=""><font face="Courier New" class="">---------------------------------------------------------</font></div>
<div class=""><font face="Courier New" class=""> SRID=4326;POLYGON((170 -1,-170 -1,-170 1,170 1,170 -1))</font></div>
<div class=""><font face="Courier New" class="">(1 row)</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">      -180             0               180</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">90 -----|--------------|----------------|----- 90</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">        |              | Point2 (0/0)   | Point1 (180/0)</font></div>
<div class=""><font face="Courier New" class="">        |  ____________|______________ ____ </font></div>
<div class=""><font face="Courier New" class=""> 0 -----|-|____________*______________|_*__|-- 0</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">        |              | Poly 2         | Poly 1</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">-90-----|--------------|----------------|----- -90</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><font face="Courier New" class="">        |              |                |</font></div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"><font face="Courier New" class=""></font></span></div>
<div class=""><font face="Courier New" class="">      -180             0               180</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">If I look at the order of the coordinates it looks like Poly 2.</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">geoDB=> SELECT ST_DWITHIN(ST_GeogFromText('POINT(0 0)'), ST_GeogFromText('POLYGON((170 -1,-170 -1,-170 1,170 1,170 -1))'),0);</font></div>
<div class=""><font face="Courier New" class=""> st_dwithin </font></div>
<div class=""><font face="Courier New" class="">------------</font></div>
<div class=""><font face="Courier New" class=""> f</font></div>
<div class=""><font face="Courier New" class="">(1 row)</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">The test with Point 2 shows that this assumption is wrong. Again Point 1 is inside.</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">geoDB=> SELECT ST_DWITHIN(ST_GeogFromText('POINT(180 0)'), ST_GeogFromText('POLYGON((170 -1,-170 -1,-170 1,170 1,170 -1))'),0);</font></div>
<div class=""><font face="Courier New" class=""> st_dwithin </font></div>
<div class=""><font face="Courier New" class="">------------</font></div>
<div class=""><font face="Courier New" class=""> t</font></div>
<div class=""><font face="Courier New" class="">(1 row)</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">If I use the geometry data type instead of the geography data type Point 2 is clearly inside Poly 2.</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">geoDB=> SELECT ST_DWITHIN(ST_GeomFromText('POINT(0 0)'), ST_GeomFromText('POLYGON((170 -1,-170 -1,-170 1,170 1,170 -1))'),0);</font></div>
<div class=""><font face="Courier New" class=""> st_dwithin </font></div>
<div class=""><font face="Courier New" class="">------------</font></div>
<div class=""><font face="Courier New" class=""> t</font></div>
<div class=""><font face="Courier New" class="">(1 row)</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">And finally here is my question: How do I construct Poly 2 from these geographic points?</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">geoDB=> SELECT ST_ASEWKT(ST_GeogFromText('POLYGON((170 -1,-170 -1,-170 1,170 1,170 -1))'));</font></div>
<div class=""><font face="Courier New" class="">                        st_asewkt                        </font></div>
<div class=""><font face="Courier New" class="">---------------------------------------------------------</font></div>
<div class=""><font face="Courier New" class=""> SRID=4326;POLYGON((170 -1,-170 -1,-170 1,170 1,170 -1))</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">Best regards and thanks for your help</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">Christian</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">P.S. A possible workaround is the use of vertices between the corner points, e.g. </font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">SELECT ST_ASEWKT(ST_GeogFromText('POLYGON((170 -1, 0 -1, -170 -1, -170 1, 0 1, 170 1, 170 -1))'));</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">geoDB=> SELECT ST_DWITHIN(ST_GeogFromText('POINT(0 0)'), ST_GeogFromText('POLYGON((170 -1, 0 -1, -170 -1, -170 1, 0 1, 170 1, 170 -1))'),0);</font></div>
<div class=""><font face="Courier New" class=""> st_dwithin </font></div>
<div class=""><font face="Courier New" class="">------------</font></div>
<div class=""><font face="Courier New" class=""> t</font></div>
<div class=""><font face="Courier New" class="">(1 row)</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
<div class=""><font face="Courier New" class="">For me this seems like a possible workaround, but not like a answer to the question above</font></div>
<div class=""><font face="Courier New" class=""><br class="">
</font></div>
</body>
</html>