<html><head></head><body><div class="yahoo-style-wrap" style="font-family:courier new, courier, monaco, monospace, sans-serif;font-size:16px;"><div dir="ltr" data-setdir="false">Hi,</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">I found that the I use intersects the result shows that the first coordinates is not used.</div><div dir="ltr" data-setdir="false">Here is a sample that I did using two same geometries that shows the issue.</div><div dir="ltr" data-setdir="false">I tested similar code in Java using JTS and I don't have this issue.</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div><pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">//</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">SIMPLE</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">SIMULATION</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">OF</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">THE</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">PROBLEM</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">USING</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">INTERSECTION</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">using</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">GEOS</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">3.9.1</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">GeometryFactory</span>::<span style=" color:#800080;">Ptr</span><span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">Factory</span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">GeometryFactory</span>::<span style=" color:#00677c;">create</span>();</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">CoordinateSequence</span>::<span style=" color:#800080;">Ptr</span><span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">coord_seq</span><span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">Factory</span>-><span style=" color:#00677c;">getCoordinateSequenceFactory</span>()-><span style=" font-style:italic; color:#00677c;">create</span>((<span style=" color:#800080;">size_t</span>)<span style=" color:#000080;">5</span>,<span style=" color:#c0c0c0;"> </span>(<span style=" color:#800080;">size_t</span>)<span style=" color:#000080;">0</span>);</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><br></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#092e64;">coord_seq</span>-><span style=" font-style:italic; color:#00677c;">setAt</span>(<span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Coordinate</span>(-<span style=" color:#000080;">180</span>,<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">85.0</span>),<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">0</span>);</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#092e64;">coord_seq</span>-><span style=" font-style:italic; color:#00677c;">setAt</span>(<span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Coordinate</span>(<span style=" color:#000080;">180</span>,<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">85.0</span>),<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">1</span>);</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#092e64;">coord_seq</span>-><span style=" font-style:italic; color:#00677c;">setAt</span>(<span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Coordinate</span>(<span style=" color:#000080;">180</span>,<span style=" color:#c0c0c0;"> </span>-<span style=" color:#000080;">85.0</span>),<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">2</span>);</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#092e64;">coord_seq</span>-><span style=" font-style:italic; color:#00677c;">setAt</span>(<span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Coordinate</span>(-<span style=" color:#000080;">180</span>,<span style=" color:#c0c0c0;"> </span>-<span style=" color:#000080;">85.0</span>),<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">3</span>);</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#092e64;">coord_seq</span>-><span style=" font-style:italic; color:#00677c;">setAt</span>(<span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Coordinate</span>(-<span style=" color:#000080;">180</span>,<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">85.0</span>),<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">4</span>);</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><br></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">LinearRing</span><span style=" color:#c0c0c0;"> </span>*<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">shell_test</span><span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">Factory</span><span style=" color:#00677c;">-></span><span style=" color:#00677c;">createLinearRing</span>(<span style=" color:#092e64;">coord_seq</span>.<span style=" color:#00677c;">release</span>());</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Geometry</span>::<span style=" color:#800080;">Ptr</span><span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">geom</span><span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">std</span>::<span style=" color:#800080;">unique_ptr</span><<span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Geometry</span>>(<span style=" color:#092e64;">Factory</span><span style=" color:#00677c;">-></span><span style=" color:#00677c;">createPolygon</span>(<span style=" color:#092e64;">shell_test</span>,<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">NULL</span>));</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><br></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#808000;">const</span><span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Geometry</span>::<span style=" color:#800080;">Ptr</span><span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">other</span><span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">geom</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">clone</span>();</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><br></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#808000;">for</span><span style=" color:#c0c0c0;"> </span>(<span style=" color:#800080;">size_t</span><span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">i</span><span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">0</span>;<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">i</span><<span style=" color:#092e64;">geom</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getNumPoints</span>();<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">i</span>++)</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">          </span><span style=" color:#00677c;">printf</span>(<span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">"geom</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">%d</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=%f,y=%f]\n"</span>,<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">i</span>+<span style=" color:#000080;">1</span>,<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">geom</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getCoordinates</span>()<span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getX</span>(<span style=" color:#092e64;">i</span>),<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">geom</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getCoordinates</span>()<span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getY</span>(<span style=" color:#092e64;">i</span>));</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><br></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#808000;">if</span><span style=" color:#c0c0c0;"> </span>(<span style=" color:#092e64;">geom</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">intersects</span>(<span style=" color:#092e64;">other</span>.<span style=" color:#00677c;">get</span>()))</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span>{</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">          </span><span style=" color:#800080;">std</span>::<span style=" color:#ce5c00;">cout</span><span style=" color:#c0c0c0;"> </span><span style=" color:#00677c;"><<</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">"GEOMETRIES</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">INTERSECTS</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">!!!!!"</span><span style=" color:#00677c;"><<</span><span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">std</span>::<span style=" color:#00677c;">endl</span>;</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><br></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">          </span><span style=" color:#808000;">const</span><span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">geos</span>::<span style=" color:#800080;">geom</span>::<span style=" color:#800080;">Geometry</span>::<span style=" color:#800080;">Ptr</span><span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">geom_intersected</span><span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">geom</span><span style=" color:#00677c;">-></span><span style=" color:#00677c;">intersection</span>(<span style=" color:#092e64;">other</span>.<span style=" color:#00677c;">get</span>());</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><br></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">          </span><span style=" color:#808000;">for</span><span style=" color:#c0c0c0;"> </span>(<span style=" color:#800080;">size_t</span><span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">i</span><span style=" color:#c0c0c0;"> </span>=<span style=" color:#c0c0c0;"> </span><span style=" color:#000080;">0</span>;<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">i</span><<span style=" color:#092e64;">geom_intersected</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getNumPoints</span>();<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">i</span>++)</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">            </span><span style=" color:#00677c;">printf</span>(<span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">"geom_intersected</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">%d</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=%f,y=%f]\n"</span>,<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">i</span>+<span style=" color:#000080;">1</span>,<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">geom_intersected</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getCoordinates</span>()<span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getX</span>(<span style=" color:#092e64;">i</span>),<span style=" color:#c0c0c0;"> </span><span style=" color:#092e64;">geom_intersected</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getCoordinates</span>()<span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">getY</span>(<span style=" color:#092e64;">i</span>));</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><br></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">          </span><span style=" color:#808000;">if</span><span style=" color:#c0c0c0;"> </span>(<span style=" color:#092e64;">geom</span><span style=" color:#00677c;">-></span><span style=" font-style:italic; color:#00677c;">compareTo</span>(<span style=" color:#092e64;">geom_intersected</span>.<span style=" color:#00677c;">get</span>()))</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">            </span><span style=" color:#800080;">std</span>::<span style=" color:#ce5c00;">cout</span><span style=" color:#c0c0c0;"> </span><<<span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">"GEOMETRIES</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">AFTER</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">INTERSECTION</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">ARE</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">NOT</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">THE</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">SAME</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">!!!!!"</span><<<span style=" color:#c0c0c0;"> </span><span style=" color:#800080;">std</span>::<span style=" color:#00677c;">endl</span>;</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span>}</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">/*</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">1</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=-150.000000,y=22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">2</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=150.000000,y=22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">3</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=150.000000,y=-22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">4</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=-150.000000,y=-22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">5</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=-150.000000,y=22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">//</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">it</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">should</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">start</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">with</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">-150</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom_intersected</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">1</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=150.000000,y=22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom_intersected</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">2</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=150.000000,y=-22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom_intersected</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">3</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=-150.000000,y=-22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom_intersected</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">4</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=-150.000000,y=22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">geom_intersected</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">5</span><span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">[x=150.000000,y=22.000000]</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#c0c0c0;">        </span><span style=" color:#008000;">*/</span></pre></div></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">Thanks</div><div dir="ltr" data-setdir="false"><br></div></div></body></html>