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


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.