পোস্টজিআইএস-এ বিদ্যমান ডেটা-র এসআরআইডি পরিবর্তন হচ্ছে?


50

পোস্টজিআইএসে আমার শেফফাইল ডেটা আমদানির সময়, আমি সঠিক প্রজেকশনটি নির্বাচন করিনি।

স্থানাঙ্কগুলি রূপান্তর না করে কীভাবে আমি এখন ডেটার এসআরআইডি পরিবর্তন করব?

উত্তর:


83

একটি একক লাইন ফাংশন রয়েছে যা এটি আপনার জন্য করে। কেবলমাত্র নিম্নলিখিত এসকিউএল কোয়েরি ব্যবহার করুন:

select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;

তবে, আপনি যদি আমার মতো হন তবে আপনি নিম্ন স্তরের, ক্ষুদ্র পদক্ষেপগুলিতে আগ্রহী হবেন। যৌক্তিকভাবে বলতে গেলে, উপরের ফাংশনটি নিম্নলিখিত চারটি ধাপের প্রক্রিয়ার সমান:

  1. জ্যামিতি_কলামগুলি সারণীতে, এসআরআইডিকে প্রয়োজনীয় মানটিতে আপডেট করুন।

  2. নিম্নলিখিত এসকিউএল স্টেটমেন্ট ব্যবহার করে টেবিলের উপরের কনট্রিন্টটি ফেলে দিন

    ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;

  3. নিম্নলিখিত এসকিউএল স্টেটমেন্ট ব্যবহার করে জ্যামিতির SRID'd আপডেট করুন

    UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);

  4. নিম্নলিখিত এসকিউএল স্টেটমেন্ট ব্যবহার করে কনট্রিন্ট পিছনে যুক্ত করুন

    ALTER TABLE mytable

    ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));


1
আরও তথ্য এবং লিঙ্কগুলির জন্য postgis.org/docs/ST_SetSRID.html দেখুন
— ব্র্যাডহার্ডস

13

PostGIS 2.x এর সাথে জ্যামিতি কলামগুলি সাধারণত টাইপমডগুলি ব্যবহার করে geometry(Point, 1234)। এগুলির জন্য আপনি এক ধাপে জ্যামিতি কলামের ধরণটি সরাসরি সংশোধন করতে ALTER TABLE ব্যবহার করতে পারেন ।

উদাহরণস্বরূপ, এর SRID সেট করতে geomমধ্যে mytableWGS84 করতে, ব্যবহার ST_SetSRID :

ALTER TABLE mytable
  ALTER COLUMN geom
    TYPE geometry(Point, 4326)
    USING ST_SetSRID(geom, 4326);

দ্রষ্টব্য যে এটি কেবল এসআরআইডি পরিবর্তন করবে, তবে স্থানাঙ্কের ডেটা রূপান্তর করবে না।


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