أكثر

خلل في ControlMapMeasureTool؟ يُنشئ "قياس منطقة" مربع حوار مكرر في ArcGIS Engine 10

خلل في ControlMapMeasureTool؟ يُنشئ


عندما نضيف أداة قياس إلى AxToolbarControl من خلال مربع حوار الخصائص ، يمكننا التغيير لقياس الطول والمساحة في مربع الحوار المنبثق. ولكن عندما نضيف أداة ControlsMapMeasureTool من خلال كود مثل هذا:

التحكم في التعتيم مثل AxMapControl = axMapControl1 أداة Dim مثل أداة ControlsMapMeasureTool () الجديدة .OnCreate (عنصر تحكم. [كائن])

لقد اتبعنا التعليمات الواردة في الوثائق كيفية إنشاء أمر أو أداة للعمل مع عناصر التحكم ينبثق مربع الحوار ولكن عندما نختار "قياس مساحة" ، يظهر مربع حوار قياس جديد ولا يزال بإمكاننا قياس الطول فقط. ما الذي نفعله بشكل خاطئ؟

خطوات التكاثر:

  1. قم بإنشاء MapControlApplication جديد في VS
  2. إنشاء MenuItem جديد في القائمة "اختبار"
  3. إنشاء معالج حدث OnClick جديد TestToolStripMenuItem_Click
  4. الصق الكود أعلاه في معالج الحدث
  5. قم بتشغيل التطبيق
  6. قم بتحميل خريطة لها مرجع مكاني يمثل نظام تنسيق مُسقط (وليس نظام تنسيق جغرافي).
  7. اختر عنصر قائمة الاختبار
  8. غيّر إلى "قياس مساحة" في مربع الحوار
  9. اسحب مربع الحوار إلى الجانب.
  10. مربعان حوار نشطان ولكن يمكن قياس الطول فقط.

أعتقد أن هناك قضيتين منفصلتين.

1) لن يتم تمكين قياس المنطقة إلا عندما يكون المرجع المكاني للخريطة هو نظام تنسيق متوقع (وليس نظام تنسيق جغرافي).

2) لا يجب عليك إنشاء أداة إذا كانت موجودة بالفعل في عنصر تحكم شريط الأدوات. بدلاً من ذلك ، يجب أن تجدها وتنشطها.

ActivMeasuretoolToolStripMenuItem_Click (مرسل الكائن ، EventArgs e) {int idx = axToolbarControl1.Find ("esriControls.ControlsMapMeasureTool") ؛ إذا (idx> -1) {// استخدم الأداة الموجودة بالفعل في شريط الأدوات axToolbarControl1.CurrentTool = (ITool) axToolbarControl1.GetItem (idx) .Command؛ } else {// أضف الأداة إلى شريط الأدوات ControlsMapMeasureTool t = new ControlsMapMeasureToolClass ()؛ t.OnCreate (axMapControl1.Object) ؛ axToolbarControl1.AddItem (t) ، axMapControl1.CurrentTool = (ITool) t ؛ }}

أعلم أن هذا الموضوع قريب من عامين ولكني أرى نفس السلوك بالضبط.

هل ما زال أي شخص آخر يرى هذا السلوك؟ من الواضح أنه كان / هو خطأ موثق يفترض أنه تم حله في sp3… Bug NIM-068806 ، ولكن ما زلت أرى السلوك مع تثبيت SP4؟

شكرا مات