পোস্টজিআইএস-এ, ST_length()
ফাংশনটি কয়েকটি ইউনিটে একটি লাইনস্ট্রিংয়ের দৈর্ঘ্য দেয়, তবে মিটারে নয়।
ST_Length()
মিটার ছাড়াও কি কোনও ফাংশন আছে ?
পোস্টজিআইএস-এ, ST_length()
ফাংশনটি কয়েকটি ইউনিটে একটি লাইনস্ট্রিংয়ের দৈর্ঘ্য দেয়, তবে মিটারে নয়।
ST_Length()
মিটার ছাড়াও কি কোনও ফাংশন আছে ?
উত্তর:
St_Length () তার স্থানিক রেফারেন্স সিস্টেমের ইউনিটগুলির দৈর্ঘ্য প্রদান করে। আপনি মিটার পেতে চাইলে আপনাকে নিজের বৈশিষ্ট্যটিকে অন্য একটি এসআরএসে রূপান্তর করতে হবে যা ইউনিট হিসাবে মিটার ব্যবহার করে। এটি অন-ফ্লাইয়ে করা যায়, সুতরাং অন্য কোনও ডেটা সেট লেখার বিষয়ে চিন্তা করবেন না।
SELECT ST_AsText(ST_Transform(the_geom,26915)) from my_table;
এই উদাহরণে, এসআরআইডি 26915 হ'ল ইউটিএম জোন 15 এন, এনএডি 83।
দেখে মনে হচ্ছে পোস্টজিআইএস ২.০ (সম্ভবত এর আগে) আপনি ST_Length
ভূগোলের জ্যামিতিকে পুনর্নির্মাণের মাধ্যমে এটিও করতে পারেন :
ST_Length(geom::geography)
উদাহরণস্বরূপ, 50 ° N, 12 ° E এবং 51 ° N, 13 ° E এর মধ্যে দূরত্ব:
SELECT ST_Length(geom) AS deg,
ST_Length(geom::geography)/1000 AS km_1,
ST_Length_Spheroid(geom, 'SPHEROID["WGS 84",6378137,298.257223563]')/1000 as km_2
FROM ST_GeomFromText('LINESTRING(12 50, 13 51)' , 4326) AS geom
যা দেয়
deg | km_1 | km_2
-----------------+------------------+------------------
1.4142135623731 | 131.935962780384 | 131.935962780384
এসকিউএল অনুরোধের উদাহরণ: পোষ্ট-ইন-বেশ কয়েকটি সারণীর-জন্য-পললাইন-জ্যামিতির দৈর্ঘ্যের-গণনা করার পদ্ধতি
এসকিউএল অনুরোধ (কিলোমিটার দৈর্ঘ্য (/ 1000-মিটার জন্য মুছে ফেলা)):
SELECT
sum(ST_Length_Spheroid(the_geom,'SPHEROID["WGS 84",6378137,298.257223563]'))/1000 AS km_roads
FROM
"D1_r";
নিম্নলিখিত সূত্রটি ব্যবহার করুন:
select ST_Length(ST_Transform(ST_GeomFromEWKT('SRID=4326;'||st_astext(the_geom)),26986)) as geolength from my_table;