J'ai une question simple sur le calcul des distances dans PostGIS.
Je voudrais obtenir la distance entre deux géométries. J'utilise ce Sid: 4269 en mètres ce que je fais maintenant est ceci: ST_Distance((a.geom,b.geom)) FROM ...
mais j'obtiens un résultat en degrés. Je pense que je devrais travailler avec la géographie, mais comment puis-je convertir un géom en géographie? J'ai essayé avec (a.geom :: geography) mais je reçois une erreur.
Que puis-je faire pour obtenir mon résultat en mètres?
Merci
postgis
coordinate-system
postgresql
distance
YassineGeoma
la source
la source
SELECT ST_Distance_Sphere(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'), ST_GeomFromEWKT('SRID=4326;POINT(-72.1260 42.45 15)'))
Les unités du SRID 4269 ( NAD 83 ) ne sont pas des mètres - il s'agit d'une projection géodésique , c'est-à-dire que les coordonnées sont des degrés (coordonnées géographiques).
La réponse de pacofvf vous donnera la distance en mètres, mais si vous aviez vraiment vos coordonnées initiales spécifiées en mètres, alors vous devriez utiliser un système de coordonnées projeté. Probablement pour l'Amérique du Nord, vous voulez quelque chose comme le système de coordonnées State Plane qui a un certain nombre de projections différentes selon la région que vous souhaitez cartographier.
Je soupçonne cependant que vous n'utilisez que des valeurs lat / lon, donc ce deuxième paragraphe n'est probablement pas pertinent - utilisez simplement la
ST_Distance_Sphere
fonction comme ci-dessus.la source