পোস্টজিআইএসে আমার শেফফাইল ডেটা আমদানির সময়, আমি সঠিক প্রজেকশনটি নির্বাচন করিনি।
স্থানাঙ্কগুলি রূপান্তর না করে কীভাবে আমি এখন ডেটার এসআরআইডি পরিবর্তন করব?
পোস্টজিআইএসে আমার শেফফাইল ডেটা আমদানির সময়, আমি সঠিক প্রজেকশনটি নির্বাচন করিনি।
স্থানাঙ্কগুলি রূপান্তর না করে কীভাবে আমি এখন ডেটার এসআরআইডি পরিবর্তন করব?
উত্তর:
একটি একক লাইন ফাংশন রয়েছে যা এটি আপনার জন্য করে। কেবলমাত্র নিম্নলিখিত এসকিউএল কোয়েরি ব্যবহার করুন:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
তবে, আপনি যদি আমার মতো হন তবে আপনি নিম্ন স্তরের, ক্ষুদ্র পদক্ষেপগুলিতে আগ্রহী হবেন। যৌক্তিকভাবে বলতে গেলে, উপরের ফাংশনটি নিম্নলিখিত চারটি ধাপের প্রক্রিয়ার সমান:
জ্যামিতি_কলামগুলি সারণীতে, এসআরআইডিকে প্রয়োজনীয় মানটিতে আপডেট করুন।
নিম্নলিখিত এসকিউএল স্টেটমেন্ট ব্যবহার করে টেবিলের উপরের কনট্রিন্টটি ফেলে দিন
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
নিম্নলিখিত এসকিউএল স্টেটমেন্ট ব্যবহার করে জ্যামিতির SRID'd আপডেট করুন
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
নিম্নলিখিত এসকিউএল স্টেটমেন্ট ব্যবহার করে কনট্রিন্ট পিছনে যুক্ত করুন
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
PostGIS 2.x এর সাথে জ্যামিতি কলামগুলি সাধারণত টাইপমডগুলি ব্যবহার করে geometry(Point, 1234)
। এগুলির জন্য আপনি এক ধাপে জ্যামিতি কলামের ধরণটি সরাসরি সংশোধন করতে ALTER TABLE ব্যবহার করতে পারেন ।
উদাহরণস্বরূপ, এর SRID সেট করতে geom
মধ্যে mytable
WGS84 করতে, ব্যবহার ST_SetSRID :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
দ্রষ্টব্য যে এটি কেবল এসআরআইডি পরিবর্তন করবে, তবে স্থানাঙ্কের ডেটা রূপান্তর করবে না।
UpdateGeometrySRID
সমর্থন করে না।