Yah I agree we should improve the docs. That particular FAQ you linked to was 
mostly focused on 
Geometry type usage where you are not working with long/lat coordinates and 
working on a measurement preserving spatial ref sys. That should have been made 
clearer.

I think for geography doing a segmentize before you apply ST_Subdivide should 
mostly do the trick.

So something like 

SELECT  sd.geom::geography AS geog
FROM your_geog_table AS g CROSS JOIN LATERAL ST_SubDivide(ST_Segmentize(geog, 
10000)::geometry ) AS sd(geom);  -- you will need to tweak that 10000 a bit 
that would force a point every 10km

Paul,

Would it be possible to do a ST_Subdivide specifically for geography - 
https://postgis.net/docs/ST_Subdivide.html

Like we have for ST_Segmentize https://postgis.net/docs/ST_Segmentize.html . 

I see a ST_Subdivide specifically geared for geography being a very useful 
thing since you are more likely to run into fat geographies than you are fat 
geometries.





> -----Original Message-----
> From: nikolai.berkoff <nikolai.berk...@pm.me>
> Sent: Tuesday, September 9, 2025 3:01 PM
> To: Regina Obe <l...@pcorp.us>
> Cc: postgis-users@lists.osgeo.org
> Subject: RE: Geometry / geography woes
> 
> Thank you very much,
> 
> I guess my toy example was too much of a toy but I still think the problem
> exists with the suggestion to use ST_Subdivide as it will chop up a geometries
> long "straight lines" into smaller "straight lines".
> 
> https://postgis.net/documentation/faq/big-objects-performance/
> seems to suggest to use ST_Subdivide to work with large geometries but
> https://postgis.net/documentation/faq/geography-inside/
> and the responses here make it clear that it doesn't work if I want to then 
> use
> any geographical calculation.
> 
> A better toy example is getting the distance of the geom to a point:
> 
> SELECT ST_Distance(geography('POINT(-77 48)'), geometry('POLYGON((-71.37
> 55.8,-63.96 54.61,-72.49 51.77,-81.32 46.47,-81.89 46.09,-81.95 46.09,-81.97
> 46.09,-82 46.09,-82.01 46.09,-82.02 46.1,-82.03 46.1,-82.04 46.1,-82.05
> 46.1,-82.07 46.11,-82.09 46.11,-82.12 46.11,-82.12 46.1,-82.13 46.1,-82.14
> 46.11,-82.14 46.1,-82.15 46.1,-82.15 46.11,-82.16 46.11,-82.19 46.12,-82.19
> 46.13,-82.2 46.13,-82.21 46.14,-82.21 46.13,-82.22 46.13,-82.22 46.14,-82.23
> 46.14,-82.24 46.14,-82.26 46.14,-82.28 46.14,-82.3 46.15,-82.3 46.14,-82.33
> 46.15,-82.34 46.15,-82.35 46.15,-82.35 46.16,-82.36 46.16,-82.36 46.17,-
> 82.35 46.17,-82.32 46.16,-82.32 46.17,-82.32 46.18,-82.34 46.18,-82.37
> 46.18,-82.38 46.18,-82.39 46.18,-82.4 46.18,-82.42 46.18,-82.43 46.18,-82.44
> 46.17,-82.45 46.17,-82.45 46.19,-82.46 46.2,-82.47 46.19,-82.48 46.18,-82.49
> 46.18,-82.5 46.18,-82.52 46.17,-82.53 46.17,-82.54 46.16,-82.55 46.17,-82.56
> 46.17,-82.58 46.17,-82.59 46.16,-82.6 46.16,-82.62 46.16,-82.62 46.15,-82.63
> 46.15,-82.64 46.15,-82.67 46.15,-82.68 46.16,-82.67 46.17,-82.68 46.17,-
> 82.68 46.18,-82.67 46.19,-82.66 46.19,-82.64 46.19,-82.62 46.2,-82.65 46.2,-
> 82.67 46.2,-82.71 46.19,-82.74 46.19,-82.76 46.18,-82.78 46.18,-82.79
> 46.18,-82.8 46.17,-82.81 46.17,-82.82 46.17,-82.84 46.17,-82.86 46.17,-82.87
> 46.17,-82.88 46.17,-82.91 46.18,-82.92 46.18,-82.93 46.17,-82.94 46.18,-
> 82.96 46.17,-83 46.16,-83.01 46.17,-83.03 46.16,-83.05 46.16,-83.06 46.16,-
> 83.09 46.16,-83.1 46.16,-83.1 46.17,-83.06 46.17,-83.05 46.18,-83.07 46.18,-
> 83.08 46.19,-83.09 46.19,-83.1 46.19,-83.12 46.18,-83.13 46.18,-83.14
> 46.18,-83.15 46.18,-83.15 46.19,-83.17 46.2,-83.18 46.2,-83.19 46.19,-83.2
> 46.19,-83.22 46.2,-83.25 46.2,-83.26 46.21,-83.27 46.21,-83.28 46.21,-83.29
> 46.21,-83.3 46.21,-83.31 46.21,-83.32 46.22,-83.33 46.22,-83.34 46.22,-83.35
> 46.23,-83.38 46.23,-83.41 46.24,-83.43 46.24,-83.45 46.24,-83.47 46.24,-
> 84.51 46.82,-84.5 46.82,-84.49 46.84,-84.48 46.84,-84.47 46.84,-84.46
> 46.84,-84.44 46.84,-84.43 46.83,-84.42 46.82,-84.42 46.81,-84.4 46.81,-84.4
> 46.82,-84.39 46.83,-84.38 46.83,-84.38 46.84,-84.37 46.84,-84.37 46.85,-
> 84.37 46.86,-84.36 46.87,-84.36 46.88,-84.36 46.89,-84.38 46.89,-84.39
> 46.9,-84.4 46.91,-84.42 46.91,-84.43 46.91,-84.43 46.92,-84.44 46.92,-84.47
> 46.93,-84.48 46.93,-84.49 46.93,-84.51 46.92,-84.52 46.92,-84.53 46.93,-
> 84.54 46.93,-84.55 46.94,-84.57 46.94,-84.58 46.93,-84.59 46.93,-84.6
> 46.93,-84.6 46.92,-84.6 46.91,-84.6 46.9,-84.61 46.89,-84.65 46.91,-84.65
> 46.92,-84.66 46.95,-84.67 46.96,-84.69 46.96,-84.7 46.96,-84.72 46.95,-84.73
> 46.95,-84.75 46.96,-84.76 46.97,-84.78 46.97,-84.78 46.98,-84.79 46.99,-
> 84.79 47,-84.78 47,-84.78 47.01,-84.77 47.01,-84.78 47.02,-84.78 47.03,-
> 84.78 47.04,-84.77 47.04,-84.77 47.05,-84.76 47.05,-84.75 47.06,-84.74
> 47.07,-84.73 47.07,-84.72 47.09,-84.71 47.1,-84.71 47.11,-84.72 47.11,-84.73
> 47.12,-84.73 47.13,-84.74 47.13,-84.74 47.14,-84.73 47.14,-84.72 47.14,-
> 84.71 47.15,-84.7 47.15,-84.69 47.17,-84.71 47.17,-84.71 47.18,-84.7 47.18,-
> 84.69 47.19,-84.68 47.19,-84.68 47.2,-84.67 47.2,-84.67 47.21,-84.66 47.21,-
> 84.66 47.22,-84.65 47.22,-84.65 47.23,-84.65 47.24,-84.64 47.24,-84.64
> 47.25,-84.63 47.25,-84.62 47.26,-84.61 47.26,-84.6 47.27,-84.6 47.28,-84.59
> 47.28,-84.59 47.29,-84.58 47.29,-84.58 47.3,-84.59 47.3,-84.6 47.3,-84.61
> 47.34,-84.62 47.34,-84.63 47.34,-84.63 47.35,-84.64 47.35,-84.64 47.36,-
> 84.65 47.36,-84.66 47.36,-84.67 47.35,-84.68 47.36,-84.69 47.36,-84.7
> 47.37,-84.7 47.38,-84.7 47.39,-84.7 47.4,-84.71 47.41,-84.71 47.42,-84.72
> 47.42,-84.73 47.43,-84.74 47.43,-84.75 47.44,-84.76 47.44,-84.76 47.45,-
> 84.78 47.46,-84.79 47.47,-84.82 47.48,-84.83 47.48,-84.83 47.49,-84.87
> 47.49,-84.87 47.5,-84.88 47.5,-84.89 47.5,-84.9 47.51,-80.86 49.7,-79.08
> 51.52,-79.06 51.51,-79.04 51.51,-79.03 51.49,-79 51.47,-78.99 51.47,-78.98
> 51.46,-78.98 51.45,-78.98 51.43,-78.98 51.42,-78.98 51.41,-78.97 51.4,-78.97
> 51.38,-78.96 51.35,-78.95 51.34,-78.95 51.33,-78.96 51.32,-78.96 51.31,-
> 78.95 51.3,-78.95 51.29,-78.94 51.28,-78.94 51.27,-78.95 51.26,-78.96
> 51.25,-78.96 51.24,-78.96 51.23,-78.95 51.21,-78.95 51.2,-78.94 51.19,-78.93
> 51.18,-78.92 51.18,-78.91 51.18,-78.9 51.17,-78.88 51.17,-78.87 51.17,-78.86
> 51.17,-78.86 51.18,-78.87 51.18,-78.87 51.19,-78.87 51.2,-78.89 51.2,-78.89
> 51.21,-78.9 51.21,-78.91 51.21,-78.92 51.22,-78.92 51.23,-78.93 51.25,-78.92
> 51.26,-78.91 51.28,-78.91 51.3,-78.91 51.31,-78.9 51.31,-78.89 51.32,-78.88
> 51.32,-78.88 51.33,-78.87 51.34,-78.87 51.35,-78.86 51.35,-78.85 51.35,-
> 78.84 51.35,-78.84 51.36,-78.85 51.36,-78.86 51.36,-78.87 51.36,-78.89
> 51.37,-78.9 51.37,-78.9 51.38,-78.9 51.39,-78.9 51.4,-78.89 51.4,-78.87
> 51.41,-78.86 51.42,-78.84 51.43,-78.83 51.44,-78.82 51.45,-78.81 51.45,-
> 78.81 51.46,-78.8 51.46,-78.79 51.48,-78.77 51.49,-78.76 51.49,-78.73
> 51.49,-78.72 51.49,-78.71 51.49,-78.7 51.49,-78.69 51.48,-78.68 51.49,-78.69
> 51.5,-78.7 51.5,-78.71 51.51,-78.72 51.51,-78.73 51.5,-78.75 51.5,-78.76
> 51.5,-78.77 51.5,-78.78 51.5,-78.79 51.5,-78.81 51.5,-78.83 51.51,-78.83
> 51.52,-78.82 51.53,-78.82 51.54,-78.82 51.55,-78.83 51.57,-78.83 51.58,-
> 78.82 51.59,-78.82 51.6,-78.82 51.61,-78.83 51.61,-78.84 51.61,-78.85
> 51.61,-78.85 51.62,-78.86 51.63,-78.87 51.64,-78.89 51.64,-78.9 51.65,-78.91
> 51.65,-78.93 51.65,-78.94 51.66,-77.83 52.8,-71.37 55.8))'));
> 
>    st_distance
> -----------------
>  105664.41899567
> (1 row)
> 
> 
> and then getting the distance after having pre-conditioning my data via
> ST_Subdivide gives a shorter result.  Thanks to your answers I now understand
> why but it feels like this is a large caveat in using ST_Subdivide.
> 
> SELECT ST_Distance(geography('POINT(-77 48)'),
> ST_Subdivide(geometry('POLYGON((-71.37 55.8,-63.96 54.61,-72.49 51.77,-
> 81.32 46.47,-81.89 46.09,-81.95 46.09,-81.97 46.09,-82 46.09,-82.01 46.09,-
> 82.02 46.1,-82.03 46.1,-82.04 46.1,-82.05 46.1,-82.07 46.11,-82.09 46.11,-
> 82.12 46.11,-82.12 46.1,-82.13 46.1,-82.14 46.11,-82.14 46.1,-82.15 46.1,-
> 82.15 46.11,-82.16 46.11,-82.19 46.12,-82.19 46.13,-82.2 46.13,-82.21
> 46.14,-82.21 46.13,-82.22 46.13,-82.22 46.14,-82.23 46.14,-82.24 46.14,-
> 82.26 46.14,-82.28 46.14,-82.3 46.15,-82.3 46.14,-82.33 46.15,-82.34 46.15,-
> 82.35 46.15,-82.35 46.16,-82.36 46.16,-82.36 46.17,-82.35 46.17,-82.32
> 46.16,-82.32 46.17,-82.32 46.18,-82.34 46.18,-82.37 46.18,-82.38 46.18,-
> 82.39 46.18,-82.4 46.18,-82.42 46.18,-82.43 46.18,-82.44 46.17,-82.45
> 46.17,-82.45 46.19,-82.46 46.2,-82.47 46.19,-82.48 46.18,-82.49 46.18,-82.5
> 46.18,-82.52 46.17,-82.53 46.17,-82.54 46.16,-82.55 46.17,-82.56 46.17,-
> 82.58 46.17,-82.59 46.16,-82.6 46.16,-82.62 46.16,-82.62 46.15,-82.63
> 46.15,-82.64 46.15,-82.67 46.15,-82.68 46.16,-82.67 46.17,-82.68 46.17,-
> 82.68 46.18,-82.67 46.19,-82.66 46.19,-82.64 46.19,-82.62 46.2,-82.65 46.2,-
> 82.67 46.2,-82.71 46.19,-82.74 46.19,-82.76 46.18,-82.78 46.18,-82.79
> 46.18,-82.8 46.17,-82.81 46.17,-82.82 46.17,-82.84 46.17,-82.86 46.17,-82.87
> 46.17,-82.88 46.17,-82.91 46.18,-82.92 46.18,-82.93 46.17,-82.94 46.18,-
> 82.96 46.17,-83 46.16,-83.01 46.17,-83.03 46.16,-83.05 46.16,-83.06 46.16,-
> 83.09 46.16,-83.1 46.16,-83.1 46.17,-83.06 46.17,-83.05 46.18,-83.07 46.18,-
> 83.08 46.19,-83.09 46.19,-83.1 46.19,-83.12 46.18,-83.13 46.18,-83.14
> 46.18,-83.15 46.18,-83.15 46.19,-83.17 46.2,-83.18 46.2,-83.19 46.19,-83.2
> 46.19,-83.22 46.2,-83.25 46.2,-83.26 46.21,-83.27 46.21,-83.28 46.21,-83.29
> 46.21,-83.3 46.21,-83.31 46.21,-83.32 46.22,-83.33 46.22,-83.34 46.22,-83.35
> 46.23,-83.38 46.23,-83.41 46.24,-83.43 46.24,-83.45 46.24,-83.47 46.24,-
> 84.51 46.82,-84.5 46.82,-84.49 46.84,-84.48 46.84,-84.47 46.84,-84.46
> 46.84,-84.44 46.84,-84.43 46.83,-84.42 46.82,-84.42 46.81,-84.4 46.81,-84.4
> 46.82,-84.39 46.83,-84.38 46.83,-84.38 46.84,-84.37 46.84,-84.37 46.85,-
> 84.37 46.86,-84.36 46.87,-84.36 46.88,-84.36 46.89,-84.38 46.89,-84.39
> 46.9,-84.4 46.91,-84.42 46.91,-84.43 46.91,-84.43 46.92,-84.44 46.92,-84.47
> 46.93,-84.48 46.93,-84.49 46.93,-84.51 46.92,-84.52 46.92,-84.53 46.93,-
> 84.54 46.93,-84.55 46.94,-84.57 46.94,-84.58 46.93,-84.59 46.93,-84.6
> 46.93,-84.6 46.92,-84.6 46.91,-84.6 46.9,-84.61 46.89,-84.65 46.91,-84.65
> 46.92,-84.66 46.95,-84.67 46.96,-84.69 46.96,-84.7 46.96,-84.72 46.95,-84.73
> 46.95,-84.75 46.96,-84.76 46.97,-84.78 46.97,-84.78 46.98,-84.79 46.99,-
> 84.79 47,-84.78 47,-84.78 47.01,-84.77 47.01,-84.78 47.02,-84.78 47.03,-
> 84.78 47.04,-84.77 47.04,-84.77 47.05,-84.76 47.05,-84.75 47.06,-84.74
> 47.07,-84.73 47.07,-84.72 47.09,-84.71 47.1,-84.71 47.11,-84.72 47.11,-84.73
> 47.12,-84.73 47.13,-84.74 47.13,-84.74 47.14,-84.73 47.14,-84.72 47.14,-
> 84.71 47.15,-84.7 47.15,-84.69 47.17,-84.71 47.17,-84.71 47.18,-84.7 47.18,-
> 84.69 47.19,-84.68 47.19,-84.68 47.2,-84.67 47.2,-84.67 47.21,-84.66 47.21,-
> 84.66 47.22,-84.65 47.22,-84.65 47.23,-84.65 47.24,-84.64 47.24,-84.64
> 47.25,-84.63 47.25,-84.62 47.26,-84.61 47.26,-84.6 47.27,-84.6 47.28,-84.59
> 47.28,-84.59 47.29,-84.58 47.29,-84.58 47.3,-84.59 47.3,-84.6 47.3,-84.61
> 47.34,-84.62 47.34,-84.63 47.34,-84.63 47.35,-84.64 47.35,-84.64 47.36,-
> 84.65 47.36,-84.66 47.36,-84.67 47.35,-84.68 47.36,-84.69 47.36,-84.7
> 47.37,-84.7 47.38,-84.7 47.39,-84.7 47.4,-84.71 47.41,-84.71 47.42,-84.72
> 47.42,-84.73 47.43,-84.74 47.43,-84.75 47.44,-84.76 47.44,-84.76 47.45,-
> 84.78 47.46,-84.79 47.47,-84.82 47.48,-84.83 47.48,-84.83 47.49,-84.87
> 47.49,-84.87 47.5,-84.88 47.5,-84.89 47.5,-84.9 47.51,-80.86 49.7,-79.08
> 51.52,-79.06 51.51,-79.04 51.51,-79.03 51.49,-79 51.47,-78.99 51.47,-78.98
> 51.46,-78.98 51.45,-78.98 51.43,-78.98 51.42,-78.98 51.41,-78.97 51.4,-78.97
> 51.38,-78.96 51.35,-78.95 51.34,-78.95 51.33,-78.96 51.32,-78.96 51.31,-
> 78.95 51.3,-78.95 51.29,-78.94 51.28,-78.94 51.27,-78.95 51.26,-78.96
> 51.25,-78.96 51.24,-78.96 51.23,-78.95 51.21,-78.95 51.2,-78.94 51.19,-78.93
> 51.18,-78.92 51.18,-78.91 51.18,-78.9 51.17,-78.88 51.17,-78.87 51.17,-78.86
> 51.17,-78.86 51.18,-78.87 51.18,-78.87 51.19,-78.87 51.2,-78.89 51.2,-78.89
> 51.21,-78.9 51.21,-78.91 51.21,-78.92 51.22,-78.92 51.23,-78.93 51.25,-78.92
> 51.26,-78.91 51.28,-78.91 51.3,-78.91 51.31,-78.9 51.31,-78.89 51.32,-78.88
> 51.32,-78.88 51.33,-78.87 51.34,-78.87 51.35,-78.86 51.35,-78.85 51.35,-
> 78.84 51.35,-78.84 51.36,-78.85 51.36,-78.86 51.36,-78.87 51.36,-78.89
> 51.37,-78.9 51.37,-78.9 51.38,-78.9 51.39,-78.9 51.4,-78.89 51.4,-78.87
> 51.41,-78.86 51.42,-78.84 51.43,-78.83 51.44,-78.82 51.45,-78.81 51.45,-
> 78.81 51.46,-78.8 51.46,-78.79 51.48,-78.77 51.49,-78.76 51.49,-78.73
> 51.49,-78.72 51.49,-78.71 51.49,-78.7 51.49,-78.69 51.48,-78.68 51.49,-78.69
> 51.5,-78.7 51.5,-78.71 51.51,-78.72 51.51,-78.73 51.5,-78.75 51.5,-78.76
> 51.5,-78.77 51.5,-78.78 51.5,-78.79 51.5,-78.81 51.5,-78.83 51.51,-78.83
> 51.52,-78.82 51.53,-78.82 51.54,-78.82 51.55,-78.83 51.57,-78.83 51.58,-
> 78.82 51.59,-78.82 51.6,-78.82 51.61,-78.83 51.61,-78.84 51.61,-78.85
> 51.61,-78.85 51.62,-78.86 51.63,-78.87 51.64,-78.89 51.64,-78.9 51.65,-78.91
> 51.65,-78.93 51.65,-78.94 51.66,-77.83 52.8,-71.37 55.8))'))) order by 1;
>    st_distance
> -----------------
>   92373.36598847
>  126170.82808402
>  364673.04933925
>  407862.08030654
>  529769.79532574
> 
> 
> On Tuesday, 9 September 2025 at 18:05, Regina Obe <l...@pcorp.us> wrote:
> 
> > Your smaller polygon is not within the larger one. If it was then this
> > would return true
> >
> 
> > SELECT ST_Intersects(ST_GeomFromText('POLYGON((-77.933927810506
> > 48.584377886263184,-77.74471476703403
> > 48.69534746901027,-77.69284285304693
> > 48.71525447165988,-77.99039086603969
> > 48.53485501013662,-77.933927810506 48.584377886263184))',
> > 4326)::geography, ST_GeomFromText('POLYGON((-81.1755551313531
> > 46.64525933571578,-81.50518756520556
> > 47.21802525065504,-81.6706742747649
> > 47.82323694299835,-81.6602226284047
> > 48.438637358868554,-81.46784223247613
> > 49.04081439308046,-81.09452004412593
> > 49.60598066574395,-80.54928811996326
> > 50.110912115887594,-79.84994871352842
> > 50.53403375725974,-79.02318022750863
> > 50.85659915226637,-78.10377843647761
> > 51.06386274945413,-77.13291403765557
> > 51.14610652092342,-76.15549659681517
> > 51.09937193283258,-75.21696581007667
> > 50.925776760111056,-74.42324583717638
> > 50.655006343959805,-81.12758032107652
> > 46.593233077736336,-81.1755551313531
> > 46.64525933571578))',4326)::geography);
> >
> 
> > And it returns false. Your ST_Within compare in planar space is invalid as 
> > it's
> treating the surfaces as planar.
> >
> 
> > If you segmentize your geographies you will see the smaller is not within 
> > the
> larger.
> >
> 
> > Here is what you get segmentizing in spheroidal space
> >
> 
> > SELECT ST_Segmentize(ST_GeomFromText('POLYGON((-77.933927810506
> > 48.584377886263184,-77.74471476703403
> > 48.69534746901027,-77.69284285304693
> > 48.71525447165988,-77.99039086603969
> > 48.53485501013662,-77.933927810506 48.584377886263184))',
> > 4326)::geography, 1000)
> >
> 
> > UNION ALL
> >
> 
> > SELECT ST_Segmentize(ST_GeomFromText('POLYGON((-81.1755551313531
> > 46.64525933571578,-81.50518756520556
> > 47.21802525065504,-81.6706742747649
> > 47.82323694299835,-81.6602226284047
> > 48.438637358868554,-81.46784223247613
> > 49.04081439308046,-81.09452004412593
> > 49.60598066574395,-80.54928811996326
> > 50.110912115887594,-79.84994871352842
> > 50.53403375725974,-79.02318022750863
> > 50.85659915226637,-78.10377843647761
> > 51.06386274945413,-77.13291403765557
> > 51.14610652092342,-76.15549659681517
> > 51.09937193283258,-75.21696581007667
> > 50.925776760111056,-74.42324583717638
> > 50.655006343959805,-81.12758032107652
> > 46.593233077736336,-81.1755551313531
> > 46.64525933571578))',4326)::geography, 1000);
> >
> 
> > Here is your planar:
> >
> 
> > SELECT ST_GeomFromText('POLYGON((-77.933927810506
> > 48.584377886263184,-77.74471476703403
> > 48.69534746901027,-77.69284285304693
> > 48.71525447165988,-77.99039086603969
> > 48.53485501013662,-77.933927810506 48.584377886263184))',
> > 4326)::geography
> >
> 
> > UNION ALL
> >
> 
> > SELECT ST_GeomFromText('POLYGON((-81.1755551313531
> > 46.64525933571578,-81.50518756520556
> > 47.21802525065504,-81.6706742747649
> > 47.82323694299835,-81.6602226284047
> > 48.438637358868554,-81.46784223247613
> > 49.04081439308046,-81.09452004412593
> > 49.60598066574395,-80.54928811996326
> > 50.110912115887594,-79.84994871352842
> > 50.53403375725974,-79.02318022750863
> > 50.85659915226637,-78.10377843647761
> > 51.06386274945413,-77.13291403765557
> > 51.14610652092342,-76.15549659681517
> > 51.09937193283258,-75.21696581007667
> > 50.925776760111056,-74.42324583717638
> > 50.655006343959805,-81.12758032107652
> > 46.593233077736336,-81.1755551313531
> > 46.64525933571578))',4326)::geography;
> >
> 
> > > -----Original Message-----
> >
> 
> > > From: nikolai.berkoff via postgis-users
> > > <postgis-users@lists.osgeo.org>
> >
> 
> > > Sent: Tuesday, September 9, 2025 7:36 AM
> >
> 
> > > To: postgis-users@lists.osgeo.org
> >
> 
> > > Subject: Geometry / geography woes
> >
> 
> > >
> >
> 
> > > Hi,
> >
> 
> > >
> >
> 
> > > I work for a conservation NGO and we deal with lots of species ranges.
> >
> 
> > >
> >
> 
> > > We have a complicated full geometry (SRID 4326)
> >
> 
> > > https://www.iucnredlist.org/species/22733619/139214707 that we have
> >
> 
> > > ST_Subdivided. We notice a large difference between the geographical
> >
> 
> > > distance from a point (-77 48) to the full geometry and to nearest
> > > subdiveded
> >
> 
> > > geometry.
> >
> 
> > >
> >
> 
> > > Here is a toy example with two polygon geometries, one large and the
> > > other
> >
> 
> > > small and a point https://wktmap.com/?771d2fc9 . First the
> > > geographical
> >
> 
> > > distance from the point to the large geometry:
> >
> 
> > >
> >
> 
> > > SELECT ST_Distance(ST_SetSRID(ST_MakePoint(-77,
> > > 48),4326)::geography,
> >
> 
> > > ST_GeomFromText('POLYGON((-81.1755551313531 46.64525933571578,-
> >
> 
> > > 81.50518756520556 47.21802525065504,-81.6706742747649
> >
> 
> > > 47.82323694299835,-81.6602226284047 48.438637358868554,-
> >
> 
> > > 81.46784223247613 49.04081439308046,-81.09452004412593
> >
> 
> > > 49.60598066574395,-80.54928811996326 50.110912115887594,-
> >
> 
> > > 79.84994871352842 50.53403375725974,-79.02318022750863
> >
> 
> > > 50.85659915226637,-78.10377843647761 51.06386274945413,-
> >
> 
> > > 77.13291403765557 51.14610652092342,-76.15549659681517
> >
> 
> > > 51.09937193283258,-75.21696581007667 50.925776760111056,-
> >
> 
> > > 74.42324583717638 50.655006343959805,-81.12758032107652
> >
> 
> > > 46.593233077736336,-81.1755551313531
> >
> 
> > > 46.64525933571578))',4326)::geography);
> >
> 
> > >
> >
> 
> > > st_distance
> >
> 
> > >
> >
> 
> > > -----------------
> >
> 
> > > 100757.06933552
> >
> 
> > >
> >
> 
> > >
> >
> 
> > > next the geographical distance from the point to the small geometry
> >
> 
> > >
> >
> 
> > > SELECT ST_Distance(ST_SetSRID(ST_MakePoint(-77,
> > > 48),4326)::geography,
> >
> 
> > > ST_GeomFromText('POLYGON((-77.933927810506 48.584377886263184,-
> >
> 
> > > 77.74471476703403 48.69534746901027,-77.69284285304693
> >
> 
> > > 48.71525447165988,-77.99039086603969 48.53485501013662,-
> >
> 
> > > 77.933927810506 48.584377886263184))', 4326)::geography);
> >
> 
> > > st_distance
> >
> 
> > >
> >
> 
> > > ----------------
> >
> 
> > > 93442.14463111
> >
> 
> > >
> >
> 
> > >
> >
> 
> > > finally, showing the the small geometry is fully within the large
> > > geometry
> >
> 
> > >
> >
> 
> > > SELECT ST_Within(ST_GeomFromText('POLYGON((-77.933927810506
> >
> 
> > > 48.584377886263184,-77.74471476703403 48.69534746901027,-
> >
> 
> > > 77.69284285304693 48.71525447165988,-77.99039086603969
> >
> 
> > > 48.53485501013662,-77.933927810506 48.584377886263184))', 4326),
> >
> 
> > > ST_GeomFromText('POLYGON((-81.1755551313531 46.64525933571578,-
> >
> 
> > > 81.50518756520556 47.21802525065504,-81.6706742747649
> >
> 
> > > 47.82323694299835,-81.6602226284047 48.438637358868554,-
> >
> 
> > > 81.46784223247613 49.04081439308046,-81.09452004412593
> >
> 
> > > 49.60598066574395,-80.54928811996326 50.110912115887594,-
> >
> 
> > > 79.84994871352842 50.53403375725974,-79.02318022750863
> >
> 
> > > 50.85659915226637,-78.10377843647761 51.06386274945413,-
> >
> 
> > > 77.13291403765557 51.14610652092342,-76.15549659681517
> >
> 
> > > 51.09937193283258,-75.21696581007667 50.925776760111056,-
> >
> 
> > > 74.42324583717638 50.655006343959805,-81.12758032107652
> >
> 
> > > 46.593233077736336,-81.1755551313531 46.64525933571578))',4326));
> >
> 
> > > st_within
> >
> 
> > >
> >
> 
> > > -----------
> >
> 
> > > t
> >
> 
> > >
> >
> 
> > >
> >
> 
> > > Why is the geographical distance to the point and the geometry
> > > increasing
> >
> 
> > > when we are only making the geometry bigger? Surely as the geometry
> > > gets
> >
> 
> > > bigger it should get nearer to the point?
> >
> 
> > >
> >
> 
> > > Thank you very much!

Reply via email to