[postgis-users] Calculate the distance between a point and a line

Paul Ramsey pramsey at cleverelephant.ca
Wed Jan 6 07:27:24 PST 2021


(a) you have the longitude and latitude reversed in your POINT
(b) use ST_DistanceSpheroid() or cast to geography instead of doing that heinous mercator hack

P

> On Jan 6, 2021, at 6:10 AM, Luca Bertoncello <lucabert at lucabert.de> wrote:
> 
> Hi list!
> 
> I'm new here and I use Postgis with OpenStreetMap data to render maps in ICAO-style for using in a App I'm currently develop.
> 
> My problem: I have a Postgis-Database with the OpenStreetMap-data for Europe.
> From other source (Eurocontrol) I have a list of reporting points, some of them will be used by hobby pilots, too. These are reporting points at (or near) the country boundaries.
> And I want to get a list of these (and just these!) point.
> 
> Let's assume, the points are max 20 Km from the boundary, I tried to calculate the distance between a point (OMELO, coordinates 50.8379138888889 14.0007583333333) and the boundaries:
> 
> SELECT
>  name,
>  admin_level,
>  ST_Distance(ST_Transform('SRID=4326;POINT(50.8379138888889 14.0007583333333)'::geometry, 3857), way) * cosd(42.3521) as dist
> FROM planet_osm_roads
> WHERE boundary = 'administrative'
>  AND admin_level = '2'
>  AND osm_id < 0
> ORDER BY admin_level DESC;
> 
> Unfortunately I only get values that make no sense, since OMELO is a couple of Km to the Czech Republic, but I get:
> 
>    name     | admin_level |       dist
> -------------+-------------+------------------
> Česko       | 2           | 4812054.73000158
> Deutschland | 2           | 4812054.73000158
> Česko       | 2           |  4812014.2751998
> Deutschland | 2           |  4812014.2751998
> Česko       | 2           | 4801322.76686319
> Deutschland | 2           | 4801322.76686319
> Česko       | 2           | 4798301.61335419
> Deutschland | 2           | 4793808.13783476
> Česko       | 2           | 4786576.73402148
> Deutschland | 2           | 4785266.87451821
> Česko       | 2           | 4775493.77594454
> Deutschland | 2           | 4775493.77594454
> Česko       | 2           | 4746495.15621187
> Deutschland | 2           | 4746495.15621187
> Česko       | 2           | 4775724.71111992
> Deutschland | 2           | 4767387.92338493
> Polska      | 2           | 4748955.14857684
> Polska      | 2           |  4759696.4876026
> Deutschland | 2           |  4759696.4876026
> Deutschland | 2           |  4849836.9269982
> Polska      | 2           |  4849836.9269982
> Polska      | 2           | 4797231.65721602
> Deutschland | 2           | 4797231.65721602
> Polska      | 2           | 4890476.28917314
> Deutschland | 2           | 4890476.28917314
> Polska      | 2           | 4938293.09438962
> Deutschland | 2           | 4938293.09438962
> Deutschland | 2           | 5002527.32842157
> Polska      | 2           | 5002527.32842157
> (29 Zeilen)
> 
> Can someone help me?
> 
> Thank you very very much!
> Luca Bertoncello
> (lucabert at lucabert.de)
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users



More information about the postgis-users mailing list