أكثر

كيفية الحصول على قيمة FIELD لنوع الهندسة لجدول السمة؟

كيفية الحصول على قيمة FIELD لنوع الهندسة لجدول السمة؟


المشكلة هي:

أحتاج إلى نسخ قيمة كل خلية لجدول السمات لبعض الميزات إلى مصفوفة سلسلة.

أفعل ذلك عن طريق تعيين قيمة الخلية لمتغير السلسلة ستربوف واحدا تلو الآخر.

للتحقق من النتيجة MsgBox سوف تظهر ستربوف القيمة.

أدناه جزء من التعليمات البرمجية والنتيجة MsgBox نافذة او شباك:

ولكن عندما أسند شكل قيمة الحقل إلى StrBuf - الخطأ هو: "خطأ وقت التشغيل '13' اكتب mismath"

سؤالي هو أي نوع (بدلاً من String) يجب أن أختار لمتغير StrBuf لتجنب هذا الخطأ؟

أنا أستعمل آركجيس 10.2.2 ، البرمجة بلغة VBA.


إذا كنت أفهمك بشكل صحيح ، فأنت تريد تخزين النص "مضلع" في صفيفك؟

الشكل هو حقل الهندسة ، لذا من المتوقع حدوث خطأ عدم التطابق ، فأنت تحاول تخزين هندسة مضلع في متغير سلسلة لا معنى له.

نظرًا لأن FeatureClass يمكن أن يكون نوعًا واحدًا فقط من الهندسة ، أود ببساطة كتابة النص مباشرة في المضلع الخاص بك لأن ذلك لا يمكن أن يتغير أبدًا.

دع StrBuff = "مضلع"

PolyGeo شكرا جزيلا !!

بمعنى آخر ، في كل مرة أقوم بتعيين قيمة الخلية لمتغير السلسلة - يجب أن أتحقق مما إذا كان الحقل هو حقل الهندسة ، أليس كذلك؟

إذا كان نوع الحقل هو Geometry ، فيجب أن أحصل على قيمة حقل من خاصية الميزة مثل هذه الطريقة:

'نوع الهندسة Dim Ftype As Integer Ftype = pCounty.Shape.GeometryType حدد حالة Ftype Case 0 StrBuf = "Null" Case 1 StrBuf = "Point" Case 2 StrBuf = "Multipoint" الحالة 3 StrBuf = "Polyline" Case 4 StrBuf = " المضلع "Case 5 StrBuf =" Envelope "Case 6 StrBuf =" Path "Case 7 StrBuf =" Any "Case 9 StrBuf =" MultiPatch "Case 11 StrBuf =" Ring "Case 13 StrBuf =" Line "Case 14 StrBuf =" CircularArc "Case 15 StrBuf =" Bezier3Curve "Case 16 StrBuf =" EllipticArc "Case 17 StrBuf =" Bag "Case 18 StrBuf =" TriangleStrip "Case 19 StrBuf =" TriangleFan "Case 20 StrBuf =" Ray "Case 21 End Select

إنها طريقة مرهقة إلى حد ما. هل هناك أي خاصية لـ pFeature تحتوي فقط على سلسلة نصية "Point" أو "Polygon" (وليس رقم الكود المقابل)؟

لم أجد أي شيء.


شاهد الفيديو: WAPOROCW Spatial data analysis using QGIS