أكثر

لا يعرض عنصر تحكم مجموعة أدوات ArcObjects WPF Legend Toolkit الطبقات


لقد بدأت في تطوير تطبيقات GIS باستخدام ArcObjects for c # و WPF.

أحاول ترحيل تطبيق ArcObjects القديم إلى الإصدار الأحدث. أنا ببساطة أضيف عنصر تحكم خريطة مع وسيلة الإيضاح الخاصة به ، باستخدام Esri.ArcGISRuntime.Toolkit. لا يوجد شيء مميز هنا. لذلك اتبعت الأمثلة ، ووضعت الخريطة وربطت وسيلة الإيضاح بالخريطة على النحو التالي:

   

ثم أقوم بإضافة GraphicsLayer برمجيًا:

GraphicsLayer pointLayer = new GraphicsLayer ()؛ pointLayer.DisplayName = "اسم الطبقة الخاصة بي"؛ pointLayer.ShowLegend = صحيح ، pointLayer.Graphics.Add (CreateMapPoint ()) ، // يضيف نقطة علامة بسيطة pointLayer.ID = "SimpleGraphicsLayer" ؛ MyMap.Layers.Add (pointLayer) ،

ولكن عندما أقوم بتنفيذ التطبيق ، فإن وسيلة الإيضاح فارغة. لا يتم عرض معلومات الطبقة. في التطبيق القديم ، حيث استخدمنا وكان الإصدار الأقدم من ArcObjects يعمل بشكل جيد.


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

https://developers.arcgis.com/net/desktop/guide/add-graphics-and-text.htm

من أجل القيام بذلك ، حدد UniqueValueRenderer لطبقة GraphicsLayer باستخدام رمز ، والذي سيحدد الرمز الصحيح لكل نقطة في الطبقة بناءً على حقل المعلومات المحدد في الكود.

ثم عند إضافة كائنات MapPoint تأكد من تعيين سمات المعلومات:

قاموس السمات = قاموس جديد() ؛ attributes.Add ("Name" ، dataRow ["NAME"]. ToString ()) ؛ attributes.Add ("Type"، dataRow ["TYPE"]. ToString ())؛ Graphic markerGraphic = رسم جديد (newMapPoint ، السمات) ؛

في تعريف XAML ، اربط الكائنات كما يلي:

راجع رابط ESRI السابق للحصول على مزيد من المعلومات.