أكثر

كيفية التكرار من خلال مجموعة من الميزات النقطية؟

كيفية التكرار من خلال مجموعة من الميزات النقطية؟


لدي مجموعة من ميزات النقاط وأرغب في العثور على النقاط التي لها إحداثيات مشتركة. الآن قمت بتغيير الكود كـ shwon bewlo باستخدام IPoint وطريقة المقارنة من خلال وظيفة. لدي 2 حلقات مع المؤشرات. يجب أن يقرأ الأول النقطة الأولى بينما يقرأ الحلقة الثانية النقطة الثانية وما إلى ذلك. كيف يمكنني إجبار مؤشر الحلقة الثانية على الانتقال إلى النقطة الثانية؟ لقد أضفت ميزة Next أخرى ولكنها لم تنجح ، والنتيجة هي أن جميع النقاط متماثلة بين الحلقتين. شكرا ديميتريس

عيّن pFeature = pFCursor.NextFeature تفعل حتى يتم تعيين pFeature لا شيء pPointA = pFeature.Shape Set pFeature2 = pFCursor2.NextFeature تفعل حتى pFeature2 لا شيء 'Set pFeature2 = pFCursor2.NextFeature Set pPointB = pFeature2.Shape CommonPoints = قارن نقاط CommonPoints = True ثم MsgBox "نعم" End If Set pFeature2 = pFCursor2.NextFeature Loop Function ComparePoints (pointA كـ IPoint ، pointB كـ IPoint) كـ Boolean إذا كانت pointA.Compare (pointB) ثم ComparePoints = True Else

حسنًا ، بناءً على المعلومات الإضافية الواردة في التعليقات ، أقترح طريقة أخرى للوصول إلى الهدف الفعلي وهو تحديد نقاط التطابق في فئة معلم النقطة. سأقوم الآن بهذا العمل الفذ بدون برمجة ("The Final Countdown" لأوروبا).

  1. في ArcMap ، أضف فئة المعالم النقطية المعنية كطبقة.
  2. استخدم البحث عن متطابق (إدارة البيانات) على طبقة المعالم التي تحتوي على نقاط التطابق. حدد ملفشكلمجال لأننا مهتمون فقط بمقارنة الهندسة. أدخل تفاوتات XY و Z المناسبة أو اقبل الإعدادات الافتراضية. سينتج عن ذلك جدول مستقل يحتوي على سجل لكل ميزة في فئة ميزات الإدخال ، مع أعمدة لـ ObjectID الأصلي لكل ميزة (IN_FID) وقيمة متسلسلة (FEAT_SEQ) ستكون هي نفسها لجميع الميزات التي تم تحديدها لتكون متطابقة.
  3. استخدم التردد (التحليل) في جدول البحث المتطابق الناتج. حدد ملفFEAT_SEQمجال مثل مجال التردد. سيؤدي هذا إلى إنشاء جدول مستقل آخر يحتوي على حقل يحتوي على عدد مرات حدوث كل قيمة متسلسلة.
  4. انضم إلى Find Identical table إلى طبقة المعالم النقطية علىمعرف الكائنالحقل في طبقة النقاط وFIDمجال في الجدول.
  5. انضم إلى جدول التردد إلى طبقة معالم النقطة علىFEAT_SEQالحقل في جدول البحث المتطابق المرتبط ، وFEAT_SEQالحقل في جدول التردد.
  6. حدد من خلال السمات على طبقة المعالم النقطية كل تلك السجلات حيثتردد> 1. تهانينا ، لقد حددت الآن جميع النقاط المتزامنة! الآن افعل شيئًا معهم.

نصائح: يمكنك استخدام مساحة العمل داخل الذاكرة ("in_memory someData") للجدولين المستقلين نظرًا لأن هناك حاجة إليها مؤقتًا فقط وعدد الميزات صغير. يمكنك أيضًا كتابة هذا بسهولة باستخدام Python!


إذا كنت تستخدم النقاط ، فقد تفكر في تطبيق IPointCollection بدلاً من المصفوفة. يمكنك استخدام الطرق المضمنة لإنجاز ما تطلبه ويجب أن تكون أكثر فاعلية لأنك لن تحتاج إلى طريقة خارجية للحصول على IPoint الخاص بك.

ستكون خطواتك:

1) أضف كل ميزة (نقطة) إلى IPointCollection باستخدام ".Add".

2) قارن yourPoint.X و / أو yourPoint.Y.


شاهد الفيديو: طريقة عمل قائمة منسدلة في الاكسل - Excel Data Validation