আমি প্রস্তাবিত প্রশ্নের সাথে আমার নিজের প্রশ্নের উত্তর দিচ্ছি।
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' হিসাবে চিহ্নিত)। গুগল ম্যাপস ১.১ মাইল হেঁটে যাওয়ার পথে আউটপুট দেয় যখন পোস্টগ্রিসের ফলাফল ৫,,৯০ ফুট = 1.09 মাইল। পার্থক্যটি আমার উদ্দেশ্যে গ্রহণযোগ্য।