मैं प्रस्तावित प्रश्न के साथ अपने स्वयं के प्रश्न का उत्तर दे रहा हूं।
select *, ABS(x_permit-x_station)+ABS(y_permit-y_station) as manhattan FROM (SELECT
longname AS NAME,
lines AS metadata,
T .slug,
ST_Distance (
T .geom,
ST_Transform (P .geometry, 3435)
) AS distance,
ST_X(ST_Transform(p.geometry, 3435)) as x_permit,
ST_Y(ST_Transform(p.geometry, 3435)) as y_permit,
ST_X(t.geom) as x_station,
ST_Y(t.geom) as y_station
FROM
permits P,
stations_cta T
WHERE
P .permit_ = '100533644'
ORDER BY
distance
LIMIT 2) as foo
इसके परिणामस्वरूप निम्नलिखित कुछ कॉलम निकले हैं:
Kedzie-Ravenswood Brown Line 3738.52830193659 3796.29623843171
Addison-O'Hare Blue Line 4105.37381385087 5790.20002649655
पहली संख्या वाला स्तंभ दूरी (पैरों में, क्योंकि मैं EPSG 3435 का उपयोग कर रहा हूं) की गणना ST_Distance PostGIS फ़ंक्शन द्वारा की गई है, और दूसरी संख्या वाला स्तंभ मैनहट्टन दूरी सूत्र का परिणाम है।
मैंने दूसरे परिणाम की जांच की, एडिसन ब्लू लाइन सीटीए स्टेशन और 3226 डब्ल्यू बेले प्लेन एवेन्यू (क्वेरी में '100533644' के रूप में विख्यात) के बीच Google मैप्स से चलने की दूरी प्राप्त करना। गूगल मैप्स ने 1.1 मील पैदल रास्ता तय किया, जबकि पोस्टग्रेज का परिणाम 5,790 फीट = 1.09 मील था। अंतर मेरे उद्देश्यों के लिए स्वीकार्य है।