<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to handle , Error parsing WKT: Invalid coordinate value '180' found at position in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/how-to-handle-error-parsing-wkt-invalid-coordinate-value-180/m-p/110755#M43675</link>
    <description>&lt;P&gt;&lt;STRONG&gt;DBR Version-&amp;nbsp;&lt;/STRONG&gt;16.2&lt;BR /&gt;&lt;STRONG&gt;spark.databricks.geo.st.enabled&lt;/STRONG&gt; true&lt;BR /&gt;&lt;BR /&gt;SQL Query I am running:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;%sql
WITH points (
    SELECT st_astext(st_point(30D, 10D)) AS point_geom
    UNION SELECT st_astext(st_point(10D, 90D)) AS point_geom
    UNION SELECT st_astext(st_point(40D, 40D)) AS point_geom)
SELECT st_geoglength(st_astext(st_makeline(collect_list(st_geomfromtext(point_geom)))))
FROM points&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;STRONG&gt;Full Error :&lt;/STRONG&gt;&lt;BR /&gt;&lt;EM&gt;[&lt;A class="" href="https://docs.microsoft.com/azure/databricks/error-messages/error-classes#wkt_parse_error" target="_blank" rel="noopener noreferrer"&gt;WKT_PARSE_ERROR&lt;/A&gt;]&lt;/EM&gt;&lt;SPAN&gt;&lt;EM&gt; Error parsing WKT: Invalid coordinate value '90' found at position 21 SQLSTATE: 22023&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;How to handle this error, how can I make this geometry compatible with databricks' st_* functions?&lt;BR /&gt;Note: st_isvalid is true for above geometry&lt;/DIV&gt;</description>
    <pubDate>Thu, 20 Feb 2025 14:26:27 GMT</pubDate>
    <dc:creator>swapnilmd</dc:creator>
    <dc:date>2025-02-20T14:26:27Z</dc:date>
    <item>
      <title>How to handle , Error parsing WKT: Invalid coordinate value '180' found at position</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-handle-error-parsing-wkt-invalid-coordinate-value-180/m-p/110755#M43675</link>
      <description>&lt;P&gt;&lt;STRONG&gt;DBR Version-&amp;nbsp;&lt;/STRONG&gt;16.2&lt;BR /&gt;&lt;STRONG&gt;spark.databricks.geo.st.enabled&lt;/STRONG&gt; true&lt;BR /&gt;&lt;BR /&gt;SQL Query I am running:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;%sql
WITH points (
    SELECT st_astext(st_point(30D, 10D)) AS point_geom
    UNION SELECT st_astext(st_point(10D, 90D)) AS point_geom
    UNION SELECT st_astext(st_point(40D, 40D)) AS point_geom)
SELECT st_geoglength(st_astext(st_makeline(collect_list(st_geomfromtext(point_geom)))))
FROM points&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;STRONG&gt;Full Error :&lt;/STRONG&gt;&lt;BR /&gt;&lt;EM&gt;[&lt;A class="" href="https://docs.microsoft.com/azure/databricks/error-messages/error-classes#wkt_parse_error" target="_blank" rel="noopener noreferrer"&gt;WKT_PARSE_ERROR&lt;/A&gt;]&lt;/EM&gt;&lt;SPAN&gt;&lt;EM&gt; Error parsing WKT: Invalid coordinate value '90' found at position 21 SQLSTATE: 22023&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;How to handle this error, how can I make this geometry compatible with databricks' st_* functions?&lt;BR /&gt;Note: st_isvalid is true for above geometry&lt;/DIV&gt;</description>
      <pubDate>Thu, 20 Feb 2025 14:26:27 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-handle-error-parsing-wkt-invalid-coordinate-value-180/m-p/110755#M43675</guid>
      <dc:creator>swapnilmd</dc:creator>
      <dc:date>2025-02-20T14:26:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to handle , Error parsing WKT: Invalid coordinate value '180' found at position</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-handle-error-parsing-wkt-invalid-coordinate-value-180/m-p/110832#M43707</link>
      <description>&lt;P&gt;Also ,other geospatial libraries like apache sedona, supports these geometries.&lt;/P&gt;</description>
      <pubDate>Fri, 21 Feb 2025 10:25:13 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-handle-error-parsing-wkt-invalid-coordinate-value-180/m-p/110832#M43707</guid>
      <dc:creator>swapnilmd</dc:creator>
      <dc:date>2025-02-21T10:25:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to handle , Error parsing WKT: Invalid coordinate value '180' found at position</title>
      <link>https://community.databricks.com/t5/data-engineering/how-to-handle-error-parsing-wkt-invalid-coordinate-value-180/m-p/138561#M50960</link>
      <description>&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;The error occurs because Databricks (based on GEOS/OGC standards) expects coordinates in Well-Known Text (WKT) that fall into valid ranges:&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Longitude (&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;X&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord mathnormal"&gt;X&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or first coordinate):&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;−180≤X≤180&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;−&lt;/SPAN&gt;&lt;SPAN class="mord"&gt;180&lt;/SPAN&gt;&lt;SPAN class="mrel"&gt;≤&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord mathnormal"&gt;X&lt;/SPAN&gt;&lt;SPAN class="mrel"&gt;≤&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;180&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Latitude (&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;Y&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord mathnormal"&gt;Y&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or second coordinate):&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;−90≤Y≤90&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;−&lt;/SPAN&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;SPAN class="mrel"&gt;≤&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord mathnormal"&gt;Y&lt;/SPAN&gt;&lt;SPAN class="mrel"&gt;≤&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Your SQL includes:&lt;BR /&gt;&lt;CODE&gt;st_point(10D, 90D)&lt;/CODE&gt;&lt;BR /&gt;Here,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;90&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is valid for latitude, but if you ever used a value above&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;90&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;it would trigger a WKT parse error, commonly seen with "Invalid coordinate value" errors in Databricks geospatial functions.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Key Points&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Latitude&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;must never exceed&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;±90&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;±&lt;/SPAN&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Longitude&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;must never exceed&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;±180&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;±&lt;/SPAN&gt;&lt;SPAN class="mord"&gt;180&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;How To Fix&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Double-check your coordinate values in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;st_point(x, y)&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;calls.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Make sure the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;y&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord mathnormal"&gt;y&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(second) value is not greater than&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;90&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;nor less than&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;−90&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;−&lt;/SPAN&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;If your input is correct, ensure you are not accidentally swapping longitude/latitude order.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Sample Correction&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;If you originally wrote:&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded font-mono text-sm font-normal bg-subtler"&gt;
&lt;DIV class="translate-y-xs -translate-x-xs bottom-xl mb-xl flex h-0 items-start justify-end md:sticky md:top-[100px]"&gt;
&lt;DIV class="overflow-hidden rounded-full border-subtlest ring-subtlest divide-subtlest bg-base"&gt;
&lt;DIV class="border-subtlest ring-subtlest divide-subtlest bg-subtler"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV&gt;
&lt;DIV class="text-quiet bg-subtle py-xs px-sm inline-block rounded-br rounded-tl-[3px] font-thin" data-testid="code-language-indicator"&gt;sql&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE&gt;&lt;SPAN class="token token"&gt;SELECT&lt;/SPAN&gt; st_astext&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;st_point&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;10&lt;/SPAN&gt;D&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;90&lt;/SPAN&gt;D&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;AS&lt;/SPAN&gt; point_geom
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;This is valid because&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;90&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is within allowed latitude. If you wrote&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;91&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;91&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or higher,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;that would fail&lt;/STRONG&gt;. If your error persists, make sure:&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Your actual input values are not outside the range.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;You're not using 90 or -90 as longitude (first value).&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Example Full Query Correction&lt;/H2&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded font-mono text-sm font-normal bg-subtler"&gt;
&lt;DIV class="translate-y-xs -translate-x-xs bottom-xl mb-xl flex h-0 items-start justify-end md:sticky md:top-[100px]"&gt;
&lt;DIV class="overflow-hidden rounded-full border-subtlest ring-subtlest divide-subtlest bg-base"&gt;
&lt;DIV class="border-subtlest ring-subtlest divide-subtlest bg-subtler"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV&gt;
&lt;DIV class="text-quiet bg-subtle py-xs px-sm inline-block rounded-br rounded-tl-[3px] font-thin" data-testid="code-language-indicator"&gt;sql&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE&gt;&lt;SPAN class="token token"&gt;WITH&lt;/SPAN&gt; points &lt;SPAN class="token token"&gt;AS&lt;/SPAN&gt; &lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;
    &lt;SPAN class="token token"&gt;SELECT&lt;/SPAN&gt; st_astext&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;st_point&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;30&lt;/SPAN&gt;D&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;10&lt;/SPAN&gt;D&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;AS&lt;/SPAN&gt; point_geom
    &lt;SPAN class="token token"&gt;UNION&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;SELECT&lt;/SPAN&gt; st_astext&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;st_point&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;10&lt;/SPAN&gt;D&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;90&lt;/SPAN&gt;D&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;AS&lt;/SPAN&gt; point_geom
    &lt;SPAN class="token token"&gt;UNION&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;SELECT&lt;/SPAN&gt; st_astext&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;st_point&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;40&lt;/SPAN&gt;D&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;40&lt;/SPAN&gt;D&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;AS&lt;/SPAN&gt; point_geom
&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="token token"&gt;SELECT&lt;/SPAN&gt; st_geoglength&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;st_astext&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;st_makeline&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;collect_list&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;st_geomfromtext&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;point_geom&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="token token"&gt;FROM&lt;/SPAN&gt; points
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;This query should work&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;if all coordinate values are within range&lt;/STRONG&gt;. If it does not, double-check for typos or data issues (like using degree symbols, non-decimal values, or non-numeric strings).&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Additional Guidance&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Use&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;ST_IsValid()&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;only checks general validity, not coordinate domain. It won't catch domain errors for WKT parsing. Always validate ranges.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;If parsing from external data, preprocess to check for invalid coordinates before using them in SQL.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Refer to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="reset interactable cursor-pointer decoration-1 underline-offset-1 text-super hover:underline font-semibold" href="https://docs.microsoft.com/azure/databricks/sql/language-manual/functions/st_point" target="_blank" rel="nofollow noopener"&gt;&lt;SPAN class="text-box-trim-both"&gt;Databricks ST_* function docs&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for expected ranges.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;For more troubleshooting, paste your exact raw input and check for invisible characters, decimals/commas, or try running each point individually to isolate the bad value.&lt;/P&gt;
&lt;HR /&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt;&lt;BR /&gt;Ensure all coordinates are inside valid latitude (&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;±90&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;±&lt;/SPAN&gt;&lt;SPAN class="mord"&gt;90&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;) and longitude (&lt;SPAN class="katex"&gt;&lt;SPAN class="katex-mathml"&gt;±180&lt;/SPAN&gt;&lt;SPAN class="katex-html" aria-hidden="true"&gt;&lt;SPAN class="base"&gt;&lt;SPAN class="mord"&gt;±&lt;/SPAN&gt;&lt;SPAN class="mord"&gt;180&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;) domains. Correct any values outside this range, as WKT parsing in Databricks will fail otherwise.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Nov 2025 10:43:39 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-to-handle-error-parsing-wkt-invalid-coordinate-value-180/m-p/138561#M50960</guid>
      <dc:creator>mark_ott</dc:creator>
      <dc:date>2025-11-11T10:43:39Z</dc:date>
    </item>
  </channel>
</rss>

