أكثر

هل تريد إضافة خريطة جديدة إلى المشروع الحالي باستخدام ArcGIS Pro .NET SDK؟


ArcGIS Pro SDK for .NET الجديد موجود حاليًا في مرحلة تجريبية لـ ArcGIS Pro 1.1 ، وأواجه مشكلة في كائنات الخريطة / المشروع.

يمكنني إضافة طبقات إلى خريطة موجودة ، لكن لا يمكنني معرفة كيفية إضافة خريطة جديدة إلى المشروع:

AddMapToProject () العامة غير المتزامن void {// إنشاء خريطة جديدة وتعيين طبقة خريطة الأساس Map mymap = new Map ("MapName") ؛ mymap.SetBasemapLayers (Basemap.Oceans) ؛ // هناك أيضًا Map.Create ("MapName") ، لست متأكدًا من استخدام // الوصول إلى المشروع الحالي Project myproject = Project.Current؛ // هذا لا يعمل في انتظار myproject.AddAsync (mymap) ؛ // يحتوي المشروع على طريقة AddAsync (عنصر عنصر) ، لكنني لا أعتقد أن // هذا مخصص لإضافة خرائط لأنه لا يقبل كائن خريطة و //ArcGIS.Desktop.Core.Item.Create (map.uri) لا يعمل}

أيه أفكار؟ لا يمكن العثور على مثال أو الطريقة الصحيحة في أي مكان. مرجع API لـ SDK موجود هنا ولكنه لا يقدم العديد من الأمثلة. لا يمكن العثور على الكثير في عينات جيثب / عينات المجتمع أيضًا.


أعتقد أن الوثيقة التجريبية قد تكون قديمة بعض الشيء. قيل لي أن أنظر إلى مصنع أساليب. (MapFactory.Create,ItemFactory.Create، وما إلى ذلك ، والتي ستكون السبيل للذهاب عندما يتم إصدار SDK عند 1.1)

جرب هذا: (ملاحظة ، تم إنشاء الخريطة في جزء المشروع ، لكن لا يتم فتحها تلقائيًا)

تجاوز محمي باطل OnClick () {var map = AddMap ("myMap") ؛ } مهمة خاصة AddMap (سلسلة mapName) {return QueuedTask.Run (() => {var map = MapFactory.CreateMap (mapName) ؛ map.SetName (mapName) ؛ إرجاع الخريطة ؛}) ؛ }

في الواقع ، جرب مقتطف الشفرة الأجمل هذا الذي يفتح الخريطة الجديدة:

مهمة غير متزامنة خاصة CreateAndOpen (سلسلة mapName) {await QueuedTask.Run ((() => {var map = MapFactory.CreateMap (mapName ، basemap: Basemap.ProjectDefault) ؛ ProApp.Panes.CreateMapPaneAsync (map) ؛ إرجاع الخريطة ؛}) ؛ }