স্প্যাটালাইট থেকে নকল সরান Remove


9

আমার কাছে পয়েন্ট সহ স্প্যাটালাইট ডাটাবেস রয়েছে। সময়ে সময়ে এখন পয়েন্ট যুক্ত করা হয়। স্থানাঙ্কের উপর ভিত্তি করে সদৃশগুলি সরানোর সহজতম উপায় কী হবে?

উত্তর:


7

টেবিলটিতে স্বয়ংক্রিয়ভাবে যোগদান আপনাকে নকল সারিগুলি সন্ধান করার অনুমতি দেবে। এর মতো কিছু কাজ করা উচিত:

DELETE t1
FROM mytable t1, mytable t2
WHERE t1.the_geom = t2.the_geom

যদি পয়েন্ট:

DELETE t1
FROM mytable t1, mytable t2
WHERE t1.x = t2.x
AND t1.y > t2.y

(পরীক্ষিত না .....)


2
ধন্যবাদ যে আমাকে সঠিক দিকের দিকে নিয়ে গেছে, আমি এটিকে এর সাথে সমাধান করেছি: মাইটিটেবুল 2 থেকে যেখানে রত্নটি মুছে ফেলুন (মাইটিটেবল 1 থেকে জহম নির্বাচন করুন);
জোহানেস

8

আমি মনে করি সবচেয়ে সহজ হ'ল সদৃশটিকে কখনই প্রবেশ করতে দেওয়া না। জ্যামিতি ক্ষেত্রে একটি অনন্য বাধা যুক্ত করুন। আমি জানি না যে এটি স্পাটিএলাইটে কীভাবে কাজ করবে তবে পোস্টগ্রিসে বাঁধাটি বাউন্ডিং বাক্সগুলির সাথে তুলনা করবে যা পয়েন্টগুলির ক্ষেত্রে পছন্দসই প্রভাবটি ডাইভ করবে।

যদি কোনও ডুপ্লিকেট অপসারণ করে তবে আপনি যদি কোনও প্রশ্ন তৈরি করতে পারেন তবে আইডি দিয়ে সমস্ত সারি মুছে ফেলা হবে যা পৃথক জ্যামিতি নির্বাচন করে এমন একটি সাবকোয়ারিতে পাওয়া যায় না। এখানে একই, পয়েন্টগুলি সহ নিরাপদ তবে অন্য ধরণের নয় কারণ কেবলমাত্র বাক্সকেই আসল জ্যামিতির সাথে তুলনা করা হবে না (যদি পোস্টগিস হিসাবে একইভাবে কাজ করা হয়)।

/ Nicklas


আপনার উত্তরের জন্য ধন্যবাদ, আমি প্রতিবন্ধকতা সহ ধারণাটি পছন্দ করি।
জোহানেস


0

আমার ক্ষেত্রে সর্বাধিক দক্ষ উপায় হ'ল স্তর থেকে স্থানিক সূচক ব্যবহার করা। এই ক্যোয়ারির সাহায্যে প্রতিটি ওভারল্যাপিং বৈশিষ্ট্যের জন্য আমি কেবল 1 জ্যামিতি রাখি। আমি লিনস্ট্রিংয়ে রূপান্তরিত একটি টিআইএন দিয়ে পরীক্ষা করেছি।

   delete from tin_line_sp where ogc_fid not in ( 

   select min(s1.rowid) as id_to_keep from
   idx_tin_line_sp_geometry as s1,
   idx_tin_line_sp_geometry as s2

   where 
       s1.xmin = s2.xmin and 
       s1.xmax = s2.xmax and 
       s1.ymin = s2.ymin and 
       s1.ymax = s2.ymax

   group by s1.xmin,s1.xmax,s1.ymin,s1.ymax)

সঠিকভাবে স্থানিক সূচকগুলি বোঝার জন্য, স্থানিক সূচককে বহুভুতে রূপান্তর করতে এখানে দুটি প্রশ্ন।

    create table tin_line_sp_representation as 
    select PolygonFromText('POLYGON(('||
    xmin || ' ' || ymin || ',' ||
    xmax || ' ' || ymin || ',' || 
    xmax || ' ' || ymax || ',' || 
    xmin || ' ' || ymax || ',' || 
    xmin || ' ' || ymin || '))',25832) as geometry
    from idx_tin_line_sp_geometry;

সাফল্যের সাথে, আপনার প্রিয় দর্শকের মধ্যে কল্পনা করতে সক্ষম করতে জ্যামিতি কলামটি পুনরুদ্ধার করুন:

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