বর্গ মিটারে আমি কীভাবে একটি WGS84 বহুভুজের ক্ষেত্র পেতে পারি?


10

নিম্নলিখিতটি আমাকে বর্গক্ষেত্রে বহুভুজের ক্ষেত্র দেয়:

SELECT ST_Area(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326)) As sqm;

ফলাফল: 16586.2319335938

আমি বর্গমিটারে অঞ্চলটি কীভাবে পাব? আমি নিম্নলিখিত চেষ্টা করেছিলাম:

SELECT ST_Area(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326)),31467) As sqm;

তবে মনে হচ্ছে ST_Transfor কাজ করে না। আমি নিম্নলিখিত ত্রুটি বার্তা পেয়েছি:

ERROR:  function st_transform(geometry) does not exist
LINE 1: SELECT ST_Area(ST_Transform(ST_GeomFromText('POLYGON((871325...
                       ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
 ERROR: function st_transform(geometry) does not exist
SQL Status:42883
Hint:No function matches the given name and argument types. You might need to add explicit type casts.

আমি পেয়েছি SELECT PostGIS_full_version () সহ প্রজ সমর্থন সমর্থন সমস্যা হওয়া উচিত নয়

"POSTGIS="1.5.3" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.8.0, 6 March 2012" LIBXML="2.8.0" USE_STATS"

উত্তর:


7

আপনার ক্যোয়ারির শেষের দিকে ভুল জায়গায় আপনার বন্ধের বন্ধন রয়েছে। আমি এটি চেষ্টা করেছিলাম এবং একটি NaN রিটার্ন পেয়েছি,

SELECT ST_AREA(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326),31467)) As sqm;

বহুভুজ আপনার অনুমানের সীমা ছাড়িয়ে যাওয়ার কারণে এনএএন ফলাফল।


এটাই! ধন্যবাদ! এছাড়া অনুমান 900913 এবং 31467 থাকতে হবে:SELECT ST_AREA(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',900913),31467)) As sqm;
মার্ক


2

উভয় জিজ্ঞাসা বহুভুজের জন্য এসআরআইডিকে 4326 হিসাবে সংজ্ঞায়িত করেছে, তবে তথ্যের ভিত্তিতে অবশ্যই এটি হবে না। এসআরআইডি 4326 (ডাব্লুজিএস 84) দ্রাঘিমাংশের জন্য [-90,90] এবং দ্রাঘিমাংশের জন্য [-180,180] সীমাবদ্ধ।

আপনার যদি 4326 এ বহুভুজ ডেটা থাকে, তবে ST_GeogFromText ব্যবহার করা আরও ভাল পদ্ধতির হতে পারে। এটি ধরে নিয়েছে যে আপনার ডেটা 4326 এ রয়েছে এবং ভূগোলের বৈশিষ্ট্যগুলির পরিমাপ মিটারে হবে।

একটি কাজের কোয়েরি অনুসরণ করে:

SELECT
ST_Area(
ST_Transform(
ST_SetSRID(
ST_GeomFromText(
'POLYGON((-98.4854749658124 29.3495134003054,-97.4374094977531 29.4150174920591,-97.2408972224919 28.4979602075071,-98.354466782305 28.4324561157534,-98.4854749658124 29.3495134003054))'
)
, 4326)
, 900913)
)

আমি 31467 এর পরিবর্তে 900913 এ রূপান্তর করেছি কারণ এই এসআরডিডি আমার উদাহরণস্বরূপ ডেটার ক্ষেত্রটি কভার করে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.