أكثر

هل تريد تحرير المؤشرات باستخدام ArcObjects؟


أنا أعمل مع ArcObjects ، ولا سيما واجهة ICursor. أقوم بإنشاء مؤشر وأقوم بالتكرار خلال مجموعة نتائج الاستعلام. مشكلتي / قلقي هو كيفية إغلاق أو حذف أو تحرير المؤشر بمجرد أن أنتهي من تكرار مجموعة نتائج الاستعلام. يتم تمرير الاستعلام إلى مساحة عمل Sql (عبر واجهة ISqlWorkspace). الكود على النحو التالي

ISqlWorkspace pSQL_WS = myWorkspace كـ ISqlWorkspace ؛ ICursor pCursor = pSQL_WS.OpenQueryCursor (strQuery) ، سلسلة cursorResults = ""؛ IRow pRow ؛ while ((pRow = pCursor.NextRow ())! = فارغة) {int fc = pRow.Fields.FieldCount ؛ لـ (int x = 0؛ x 

أنا في الواقع آخذ نتائج الاستعلام وأضعها في عنصر نصي. أفكر بعد السطر الأخير في المكان الذي أريد إغلاق / حذف / تحرير المؤشر الخاص بي ، لكنني لست متأكدًا من كيفية القيام بذلك.


لتحرير المؤشر ، تحتاج إلى استخدام ReleaseComObject ، راجع هذه المقالة من تعليمات Esri (9.2) والتي لا تزال صالحة.

تم تحريره في التعليمات البرمجية الخاصة بك:

ISqlWorkspace pSQL_WS = myWorkspace كـ ISqlWorkspace ؛ ICursor pCursor = pSQL_WS.OpenQueryCursor (strQuery) ، سلسلة cursorResults = ""؛ IRow pRow ؛ while ((pRow = pCursor.NextRow ())! = فارغة) {int fc = pRow.Fields.FieldCount ؛ لـ (int x = 0؛ x 

يعد تحرير هذه الأقفال أمرًا مهمًا وإلا فسيتم قفل مساحة العمل / فئة الميزة طوال عمر الأداة (وإذا استمر في ArcCatalog أو ArcMap حتى يتم إغلاق التطبيق) وسيمنع حذف / إعادة تسمية / إضافة الحقول ...

لاختبار ما إذا كانت فئة المعالم مقفلة بالفعل ، استخدم ISchemaLock.GetCurrentSchemaLocks التي يجب اختبارها قبل إضافة الحقول أو محاولة إعادة تسمية / حذف فئة الميزة.


استجابة بطيئة عند القيام بالاستفسارات المكانية.

أنا أستخدم Visual Studio 2010 Professional - الإصدار 10.0.40219.1 SP1Rel. Microsoft .NET Framework - الإصدار 4.5.50938 SP1Rel. ArcGIS 10.1 SP1 for Desktop - النسخة 3143.

أقوم بإجراء استعلام مكاني لاستعادة جميع نقاط العنوان داخل حدود الرمز البريدي ، وبالتالي فإن جميع النقاط داخل مضلع.

إذا تم تحميل طبقة النقطة وطبقة المضلع في جلسة ArcMap وكانت النتيجة النهائية 15000 نقطة داخل المضلع ، فقد يتم تشغيلها من 10 إلى 15 دقيقة ، إذا قمت بذلك على الخادم ، فستنفد الذاكرة.

أعتقد أن المشكلة تكمن في كيفية إعداد Visual Studio ، لم أقم بإعداده ، لقد تم تثبيته للتو على جهازي. في البحث عن حل وجدته في إعدادات المحول البرمجي المتقدمة لتغيير وحدة المعالجة المركزية المستهدفة ، من إعداد AnyCPU الذي تم ضبطه عليه ، إلى x86. بعد أن فعلت ذلك ، سيتم تشغيله على الخادم (بطيء جدًا) وينفد أحيانًا من الذاكرة ، ليس رائعًا ، ولكنه تحسن.

يبدو أيضًا أنني أذهب إلى حلقة الرموز البريدية التي تصبح أبطأ وأبطأ. إذا أغلقت الجلسة وأعدت تشغيلها ، فإن السرعة (ما يوجد منها) تنتعش احتياطيًا ثم تبدأ في التباطؤ.

لقد قمت دائمًا بإجراء استعلامات مكانية صغيرة ، أو نقطة واحدة ، أو نقاط في الحي ، ولكن ليس هذا الاستفسار الكبير. نعم ، أحرر المؤشر بعد كل استعلام مكاني.

سأقوم بنشر الرمز الذي أستخدمه ، شكرًا لك على النظر إلى هذا.

في الكود ، أجد جميع النقاط داخل حدود الرمز البريدي وأتحقق من أن الرمز البريدي الموجود على النقطة يطابق حدود الرمز البريدي الموجود بداخله.


هل تريد تحرير المؤشرات باستخدام ArcObjects؟ - نظم المعلومات الجغرافية

فئة COM "UniqueValueRenderer". تم إنشاؤه في 19/3/2015 1:20:41 مساءً من "C: ArcGIS COM esriCarto.olb"

الوصف "عارض القيم الفريدة حيث يتم تعيين الرموز للمعالم بناءً على قيم السمات الفريدة. 'خيارات المولد: PromptForTypeLibraries = False ClashPrefix = esri_ LowerCaseMemberNames = True IDispatchOnly = False RetryOnReject = False AwtForOcxs = True ArraysAsObjects = False DontRenameSameMethods = True GenethoconflictingInterfods

ملخص ميداني
طويل ثابت الإصدار التسلسلي
الحقول الموروثة من الواجهة com.esri.arcgis.carto.IUniqueValueRenderer
IID ، IIDc3346d2a_b2bc_11d1_8817_080009ec732a ، xxDummy
الحقول الموروثة من الواجهة com.esri.arcgis.carto.IUniqueValueRenderer2
IID ، IID78b2e6fc_a027_4b63_a52d_3ad0ba2f2e81 ، xxDummy
الحقول الموروثة من الواجهة com.esri.arcgis.carto.IFeatureRendererUpdate
IID ، IID735c4d99_e28d_4ad4_b5b9_a12c1d8319fc ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ILevelRenderer
IID و IIDdc3d8097_c1ed_11d2_9f21_00c04f6bc709 و xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IPersistStream
IID، IID00000109_0000_0000_c000_000000000046، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IPersist
IID0000010c_0000_0000_c000_000000000046
الحقول موروثة من الواجهة com.esri.arcgis.carto.IRendererClasses
IID و IID3f25cc56_cc66_4930_a5fd_bc981601cea6 و xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.IRotationRenderer
IID ، IID2f2047a6_42bd_11d2_aafd_00c04fa334b3 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.IRotationRenderer2
IID ، IIDd85e5b0c_68b3_48c8_b8d2_087806273b47 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ISizeRenderer
IID ، IID5ba3418a_4ba5_431a_b879_f2539c7be5ff ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ITransparencyRenderer
IID و IIDfb20665d_db1c_11d2_9f2e_00c04f6bc709 و xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.display.IDisplayAdmin
IID ، IID12e361f0_1907_11d3_80c7_0080c79f0371 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ILookupSymbol
IID ، IID736a377d_a1eb_4ce4_84b9_90f9588374c2 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IXMLSerialize
IID ، IIDc8545045_6615_48e3_af27_52a0e5fc35e2 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IXMLVersionSupport
IID ، IID72ca65b9_13de_48b7_8443_717b69b72a99 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.IExportSupport
IID ، IIDf6448010_3cc8_435e_b042_540e9a328f3b ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ILookupLegendClass
IID ، IIDbdb4bf86_8691_4f1c_b009_42e39035f40e ، xxDummy
ملخص المنشئ
برنامج UniqueValueRenderer ()
ينشئ UniqueValueRenderer باستخدام محرك ArcGIS.
UniqueValueRenderer (java.lang.Object obj)
إهمال. اعتبارًا من ArcGIS 9.2 ، تم استبداله بقوالب Java العادية.
UniqueValueRenderer theUniqueValueRenderer = (UniqueValueRenderer) obj
ملخص الطريقة
فارغ addReferenceValue (قيمة java.lang.String ، java.lang.String refValue)
يضيف قيمة إلى العارض ليتم تجميعها مع refValue ، والتي تمت إضافتها بالفعل إلى العارض.
فارغ addValue (قيمة java.lang.String ، عنوان java.lang.String ، رمز ISymbol)
يضيف قيمة والرمز المقابل إلى القائمة.
قيمة منطقية canRender (IFeatureClass featClass ، عرض IDisplay)
يشير إلى إمكانية عرض فئة الميزة المحددة على الشاشة المحددة.
فارغ إلغاء التسلسل (بيانات IXMLSerializeData)
يلغي تسلسل كائن من XML.
فارغ رسم (مؤشر IFeatureCursor، int drawPhase، IDisplay display، ITrackCancel trackCancel)
يرسم المعالم من المؤشر المحدد على الشاشة المحددة.
قيمة منطقية يساوي (java.lang.Object o)
قارن هذا الكائن بآخر
java.lang.String esri_getClass (فهرس int)
اسم الفصل.
int getClassCount ()
عدد الفصول.
فارغ getClassID (GUID [] pClassID)
getClassID
java.lang.String ثابت getClsid ()
getClsid.
IColorRamp getColorRamp ()
كائن منحدر اللون.
java.lang.String getColorScheme ()
نظام الألوان (خاصية واجهة المستخدم فقط).
java.lang.String getDefaultLabel ()
التسمية المستخدمة لقيم غير محددة.
ISymbol getDefaultSymbol ()
الرمز المستخدم لرسم أي قيم غير محددة (قد تكون فارغة).
java.lang.String getDescription (قيمة java.lang.String)
وصف التسمية المحددة.
java.lang.String getField (فهرس int)
الحقل في الفهرس المحدد المستخدم لتصنيف المعالم.
int getFieldCount ()
عدد الحقول المستخدمة بواسطة العارض (0-3).
java.lang.String getFieldDelimiter ()
محدد يستخدم لفصل قيم الحقول.
java.lang.String getHeading (قيمة java.lang.String)
العنوان الذي يحتوي على القيمة المحددة.
com.esri.arcgis.interop.Dispatch getJintegraDispatch ()
إهمال. للإستخدام الداخلي فقط.
java.lang.String getLabel (قيمة java.lang.String)
تسمية للقيمة المحددة.
ILegendGroup getLegendGroup (فهرس int)
مجموعة وسيلة الإيضاح في الفهرس المحدد.
int getLegendGroupCount ()
عدد مجموعات وسيلة الإيضاح التي يحتوي عليها الكائن.
العنصر getLegendItem ()
اختياري.
java.lang.Object getLevelArray ()
مصفوفة تحتوي على جميع المستويات المستخدمة من قبل الرموز ، (الرموز بدون مستوى تحصل على مستوى 0).
java.lang.String getLookupStyleset ()
النمط المستخدم للمطابقة (خاصية واجهة المستخدم فقط).
java.lang.String getMinNamespaceSupported ()
الحد الأدنى لمساحة الاسم التي يمكن للفئة إجراء تسلسل إليها (على سبيل المثال ، مساحة الاسم 90).
java.lang.String getReferenceValue (قيمة java.lang.String)
القيمة المرجعية للقيمة المحددة.
java.lang.String getRotationField ()
مجال الدوران.
int getRotationType ()
نوع الدوران.
فارغ getSizeMax (_ULARGE_INTEGER [] pcbSize)
getSizeMax
java.lang.String getSizeRendererExpression ()
يحصل على تعبير عن الحجم.
int getSizeRendererFlags ()
الحصول على أعلام تحجيم مكونة من enum esriSizeRendererFlags.
فارغ getSizeRendererRandomRange (مزدوج [] pMinSize ، مزدوج [] pMaxSize)
يحصل على نطاق الحجم للتحجيم العشوائي.
ISymbol getSymbol (قيمة java.lang.String)
الرمز المرتبط بالقيمة المحددة.
ISymbol getSymbolByFeature (ميزة IFeature)
يستخدم الرمز لرسم الميزة المحددة.
فارغ getSymbolRotation3DExpressions (java.lang.String [] pExpressionX، java.lang.String [] pExpressionY، java.lang.String [] pExpressionZ)
الحصول على تعبيرات للدوران حول كل محور.
int getSymbolRotation3DFlags ()
الحصول على أعلام استدارة مكونة من esriSymbolRotation3DFlags.
فارغ getSymbolRotation3DFlags2 (int [] pFlagX، int [] pFlagY، int [] pFlagZ)
يحصل على علم واحد لكل محور.
فارغ getSymbolRotation3DRandomRanges (double [] pMinRotationX، double [] pMinRotationY، double [] pMinRotationZ، double [] pMaxRotationX، double [] pMaxRotationY، double [] pMaxRotationZ)
يحصل على نطاق دوران لكل محور (للدوران العشوائي).
int getSymbolRotation3DRotationTypeZ ()
الحصول على نوع الاستدارة (جغرافيًا أو حسابيًا) حول المحور Z (الحساب الثابت حول المحاور الأخرى).
java.lang.String getTransparencyField ()
مجال الشفافية.
java.lang.String getValue (فهرس int)
القيمة في الفهرس المحدد.
int getValueCount ()
عدد القيم الفريدة المستخدمة لتصنيف البيانات.
java.lang.String getWhereClause (فهرس int ، جدول ITable)
حيث الشرطية.
int hashCode ()
رمز التجزئة لهذا الكائن
فارغ متسخ ()
متسخ
قيمة منطقية isFlipSymbols ()
يشير إلى ما إذا تم قلب الرموز.
قيمة منطقية isRenderPhase (int drawPhase)
يشير إلى ما إذا كان العارض يستخدم مرحلة الرسم المحددة.
قيمة منطقية isReverseUniqueValuesSorting ()
يشير إلى ما إذا تم قلب القيم الفريدة.
قيمة منطقية isSymbolsAreGraduated ()
يشير إلى ما إذا كانت الرموز متدرجة.
قيمة منطقية isUseDefaultSymbol ()
يشير إلى ما إذا كان DefaultSymbol مستخدماً لرسم قيم غير محددة.
قيمة منطقية isUsesFilter ()
يشير إلى ما إذا كان الكائن الحالي يرسم باستخدام مرشح.
فارغ تحميل (IStream pstm)
حمل
int lookupLegendClass (IFeature feature، int [] legendGroupIdx)
إرجاع مجموعة وسيلة الإيضاح وفهارس فئة وسيلة الإيضاح لميزة الإدخال.
ISymbol lookupSymbol (boolean firstPass، IFeature feature)
إرجاع مرجع إلى رمز جهاز العرض لميزة الإدخال.
فارغ PreparFilter (IFeatureClass fc ، الاستعلام IQueryFilterFilter)
تحضير عامل تصفية الاستعلام لعملية العرض.
فارغ readExternal (java.io.ObjectInput in)
فارغ إطلاق سراح ()
حرر برنامج UniqueValueRenderer.
فارغ removeAllValues ​​()
يزيل كل القيم من العارض.
فارغ removeValue (قيمة java.lang.String)
يزيل قيمة من العارض.
فارغ resetLookupSymbol (رمز ISymbol)
يعيد تعيين الخيارات المؤقتة على الرمز (على سبيل المثال
فارغ حفظ (IStream pstm ، int fClearDirty)
حفظ
فارغ إنشاء تسلسل (بيانات IXMLSerializeData)
تسلسل كائن إلى XML.
فارغ setColorRampByRef (IColorRamp ppColorRamp)
كائن منحدر اللون.
فارغ setColorScheme (اسم java.lang.String)
نظام الألوان (خاصية واجهة المستخدم فقط).
فارغ setCurrentDrawLevel (int rhs1)
مستوى السحب الحالي ، (اضبطه على -1 لرسم كل المستويات).
فارغ setDefaultLabel (تسمية java.lang.String)
التسمية المستخدمة لقيم غير محددة.
فارغ setDefaultSymbol (رمز ISymbol)
الرمز المستخدم لرسم أي قيم غير محددة (قد تكون فارغة).
فارغ setDescription (قيمة java.lang.String ، java.lang.String text)
وصف التسمية المحددة.
فارغ setExclusionSetByRef (IFeatureIDSet rhs1)
مرجع كائن لمجموعة استثناءات رسم مؤقتة.
فارغ setExportInfoByRef (IFeatureExportInfoGenerator rhs1)
oject المساعد لتوليد معلومات التصدير.
فارغ setField (فهرس int ، حقل java.lang.String)
الحقل في الفهرس المحدد المستخدم لتصنيف المعالم.
فارغ setFieldCount (int fieldCount)
عدد الحقول المستخدمة بواسطة العارض (0-3).
فارغ setFieldDelimiter (java.lang.String محدد)
محدد يستخدم لفصل قيم الحقول.
فارغ setFieldType (مؤشر int ، قيمة منطقية rhs2)
يشير إلى ما إذا كان الحقل في الفهرس المحدد عبارة عن سلسلة.
فارغ setFlipSymbols (تصاعدي منطقي)
يشير إلى ما إذا تم قلب الرموز.
فارغ setHeading (قيمة java.lang.String ، عنوان java.lang.String)
العنوان الذي يحتوي على القيمة المحددة.
فارغ setLabel (قيمة java.lang.String ، تسمية java.lang.String)
تسمية للقيمة المحددة.
فارغ setLookupStyleset (اسم java.lang.String)
النمط المستخدم للمطابقة (خاصية واجهة المستخدم فقط).
فارغ setReverseUniqueValues ​​الفرز (تصاعدي منطقي)
يشير إلى ما إذا تم قلب القيم الفريدة.
فارغ setRotationField (java.lang.String fieldName)
مجال الدوران.
فارغ setRotationType (نوع int)
نوع الدوران.
فارغ setSizeRendererExpression (java.lang.String pExpression)
يحصل على تعبير عن الحجم.
فارغ setSizeRendererFlags (int pFlags)
الحصول على أعلام تحجيم مكونة من enum esriSizeRendererFlags.
فارغ setSizeRendererRandomRange (حجم صغير مزدوج ، حجم أقصى مزدوج)
يضبط نطاق الحجم للتحجيم العشوائي.
فارغ setSymbol (قيمة java.lang.String ، رمز ISymbol)
الرمز المرتبط بالقيمة المحددة.
فارغ setSymbolRotation3DExpressions (تعبير java.lang.StringX ، تعبير java.lang.StringY ، java.lang.String ExpressZ)
يضبط التعبيرات للدوران حول كل محور.
فارغ setSymbolRotation3DFlags (int pFlags)
الحصول على أعلام استدارة مكونة من esriSymbolRotation3DFlags.
فارغ setSymbolRotation3DFlags2 (int flagX ، int flagY ، int flagZ)
يعيّن علامة واحدة لكل محور.
فارغ setSymbolRotation3DRandomRanges (double minRotationX، double minRationY، double minRotationZ، double maxRotationX، double maxRotationY، double maxRotationZ)
يضبط نطاق الدوران لكل محور (للدوران العشوائي).
فارغ setSymbolRotation3DRotationTypeZ (int pType)
الحصول على نوع الاستدارة (جغرافيًا أو حسابيًا) حول المحور Z (الحساب الثابت حول المحاور الأخرى).
فارغ setSymbolsAreGraduated (الرموز المنطقيةAreGraduated)
يشير إلى ما إذا كانت الرموز متدرجة.
فارغ setTransparencyField (java.lang.String fieldName)
مجال الشفافية.
فارغ setUseDefaultSymbol (علم منطقي)
يشير إلى ما إذا كان DefaultSymbol مستخدماً لرسم قيم غير محددة.
فارغ setValue (فهرس int ، قيمة java.lang.String)
القيمة في الفهرس المحدد.
فارغ تحديث (IFeatureLayer pFeatureLayer)
تحديث
فارغ writeExternal (java.io.ObjectOutput out)
الطرق الموروثة من الفئة java.lang.Object
clone، finalize، getClass، notify، notifyAll، toString، انتظر، انتظر، انتظر

الإصدار التسلسلي

برنامج UniqueValueRenderer

رميات: java.io.IOException - في حالة وجود مشكلات في التشغيل المتداخل java.net.UnknownHostException - إذا كانت هناك مشكلات في التشغيل المتداخل

برنامج UniqueValueRenderer

أنشئ UniqueValueRenderer باستخدام مرجع لمثل هذا الكائن الذي تم إرجاعه من ArcGIS Engine أو Server. هذا يعادل لغويًا إرسال الهدف إلى UniqueValueRenderer.

المعلمات: obj - كائن تم إرجاعه من ArcGIS Engine أو Server Throws: java.io.IOException - إذا كانت هناك مشكلات في التشغيل المتداخل

تفاصيل الطريقة

GetClsid

يساوي

تجاوزات: يساوي في فئة java.lang.Object

HashCode

التجاوزات: hashCode في الفئة java.lang.Object

GetJintegraDispatch

محدد بواسطة: getJintegraDispatch في الواجهة com.esri.arcgis.interop.RemoteObjRef

إطلاق سراح

محدد بواسطة: release في الواجهة com.esri.arcgis.interop.RemoteObjRef

GetField

مُحدد بواسطة: getField في الواجهة ILookupLegendClass مُحدد بواسطة: getField في الواجهة IUniqueValueRenderer Parameters: index - الفهرس (in) Returns: الحقل Throws: java.io.IOException - إذا كانت هناك مشاكل توافق. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetField

محدد بواسطة: setField in interface IUniqueValueRenderer Parameters: الفهرس - حقل الفهرس (في) - الحقل (في) يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetFieldType

محدد بواسطة: setFieldType في الواجهة IUniqueValueRenderer Parameters: index - الفهرس (in) rhs2 - Rhs2 (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetFieldDelimiter

محدد بواسطة: getFieldDelimiter في الواجهة IUniqueValueRenderer إرجاع: المحدد يرمي: java.io.IOException - إذا كانت هناك مشكلات في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetFieldDelimiter

محدد بواسطة: setFieldDelimiter في الواجهة IUniqueValueRenderer Parameters: المحدد - المحدد (in) رميات: java.io.IOException - إذا كانت هناك مشكلات في التشغيل المتداخل.AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetFieldCount

محدد بواسطة: getFieldCount في الواجهة ILookupLegendClass محدد بواسطة: getFieldCount في الواجهة IUniqueValueRenderer إرجاع: The fieldCount Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetFieldCount

محدد بواسطة: setFieldCount في الواجهة IUniqueValueRenderer Parameters: fieldCount - عدد الحقول (في) رميات: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetDefaultSymbol

محدد بواسطة: getDefaultSymbol في الواجهة IUniqueValueRenderer Returns: مرجع إلى com.esri.arcgis.display.ISymbol Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetDefaultSymbol

محدد بواسطة: setDefaultSymbol في الواجهة IUniqueValueRenderer Parameters: الرمز - مرجع إلى com.esri.arcgis.display.ISymbol (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetDefaultLabel

محدد بواسطة: getDefaultLabel في واجهة IUniqueValueRenderer إرجاع: التسمية Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetDefaultLabel

محدد بواسطة: setDefaultLabel في الواجهة IUniqueValueRenderer Parameters: التسمية - الملصق (في) يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

IsUseDefaultSymbol

تم التحديد بواسطة: isUseDefaultSymbol في الواجهة IUniqueValueRenderer إرجاع: رميات العلم: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetUseDefaultSymbol

محدد بواسطة: setUseDefaultSymbol في الواجهة IUniqueValueRenderer Parameters: العلم - العلم (في) يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetValueCount

محدد بواسطة: getValueCount في واجهة IUniqueValueRenderer إرجاع: قيمة valueCount: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

الحصول على قيمة

محدد بواسطة: getValue في الواجهة IUniqueValueRenderer Parameters: الفهرس - الفهرس (in) إرجاع: القيمة Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetValue

محدد بواسطة: setValue في الواجهة IUniqueValueRenderer Parameters: الفهرس - قيمة الفهرس (in) - القيمة (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetReferenceValue

محدد بواسطة: getReferenceValue في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (في) إرجاع: قيمة refValue: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

AddReferenceValue

محدد بواسطة: addReferenceValue في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (in) refValue - قيمة refValue (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetSymbol

محدد بواسطة: getSymbol في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (في) إرجاع: مرجع إلى com.esri.arcgis.display.ISymbol Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

تعيين رمز

محدد بواسطة: setSymbol في الواجهة IUniqueValueRenderer Parameters: القيمة - رمز القيمة (in) - مرجع إلى com.esri.arcgis.display.ISymbol (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetLabel

محدد بواسطة: getLabel في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (in) إرجاع: التسمية Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

تسمية مجموعة

محدد بواسطة: setLabel في الواجهة IUniqueValueRenderer Parameters: القيمة - تسمية القيمة (في) - الملصق (في) يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetDescription

محدد بواسطة: getDescription في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (in) Returns: The text Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

وصف المجموعة

محدد بواسطة: setDescription في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (in) text - النص (in) يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetHeading

محدد بواسطة: getHeading في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (في) إرجاع: العنوان Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

تعيين

محدد بواسطة: setHeading في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (في) العنوان - العنوان (in) يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

إضافة قيمة

محدد بواسطة: addValue في الواجهة IUniqueValueRenderer Parameters: القيمة - عنوان القيمة (في) - رمز العنوان (في) - مرجع إلى com.esri.arcgis.display.ISymbol (in) Throws: java.io.IOException - إذا توجد مشكلات في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

إزالة القيمة

محدد بواسطة: removeValue في الواجهة IUniqueValueRenderer Parameters: القيمة - القيمة (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

RemoveAllValues

محدد بواسطة: removeAllValues ​​في الواجهة IUniqueValueRenderer Throws: java.io.IOException - إذا كانت هناك مشكلات في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetColorScheme

محدد بواسطة: getColorScheme في واجهة IUniqueValueRenderer إرجاع: الاسم يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetColorScheme

محدد بواسطة: setColorScheme في الواجهة IUniqueValueRenderer Parameters: الاسم - الاسم (في) يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetLookupStyleset

محدد بواسطة: getLookupStyleset في واجهة IUniqueValueRenderer إرجاع: الاسم يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetLookupStyleset

محدد بواسطة: setLookupStyleset في الواجهة IUniqueValueRenderer Parameters: الاسم - الاسم (في) يلقي: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetColorRamp

محدد بواسطة: getColorRamp في واجهة IUniqueValueRenderer2 إرجاع: مرجع إلى com.esri.arcgis.display.IColorRamp Throws: java.io.IOException - إذا كانت هناك مشكلات في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetColorRampByRef

محدد بواسطة: setColorRampByRef في الواجهة IUniqueValueRenderer2 المعلمات: ppColorRamp - مرجع إلى com.esri.arcgis.display.IColorRamp (in) Throws: java.io.IOException - إذا كانت هناك مشكلات في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

IsReverseUniqueValuesSorting

محدد بواسطة: isReverseUniqueValuesSorting في الواجهة IUniqueValueRenderer2 إرجاع: الرميات التصاعدية: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetReverseUniqueValuesSorting

محدد بواسطة: setReverseUniqueValuesSorting في الواجهة IUniqueValueRenderer2 Parameters: تصاعدي - التصاعدي (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

IsFlipSymbols

محدد بواسطة: isFlipSymbols في الواجهة IUniqueValueRenderer2 الإرجاع: الرميات الصاعدة: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetFlipSymbols

محدد بواسطة: setFlipSymbols في الواجهة IUniqueValueRenderer2 المعلمات: تصاعدي - الرميات الصاعدة (في): java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

يمكن تقديم

ملاحظات

إذا لم يكن العارض قابلاً للتطبيق على طبقة معالم ، فيمكنه عندئذٍ إرجاع False ردًا على طريقة CanRender. على سبيل المثال ، عارض كثافة النقاط قابل للتطبيق فقط على طبقات معالم المضلع ويعيد False استجابةً لطبقات المعالم الأخرى.

توفر المنتج

المنصات المدعومة

محدد بواسطة: canRender في الواجهة IFeatureRenderer Parameters: featClass - مرجع إلى عرض com.esri.arcgis.geodatabase.IFeatureClass (in) - مرجع إلى com.esri.arcgis.display.IDisplay (in) إرجاع: النتيجة تطرح : java.io.IOException - إذا كانت هناك مشكلات في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

تحضير الفلتر

ملاحظات

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

توفر المنتج

المنصات المدعومة

محدد بواسطة: PreparFilter في الواجهة IFeatureRenderer Parameters: fc - مرجع إلى com.esri.arcgis.geodatabase.IFeatureClass (in) queryFilter - مرجع إلى com.esri.arcgis.geodatabase.IQueryFilter (in) Throws: java.io .IOException - في حالة وجود مشكلات في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

ملاحظات

عادةً ما يتم استدعاء هذه الطريقة بواسطة Framework لعرض الميزات على شاشة العرض. قد يكون هذا ردًا على تحديث على الخريطة. تتكرر هذه الطريقة عادةً عبر جميع الميزات وتجعل كل ميزة برمز مناسب.

عادةً ما يتم رسم ميزة فردية عن طريق استدعاء طريقة الرسم على IFeatureDraw الخاصة بالميزة بالرمز الذي تم إنشاؤه بواسطة العارض. ومع ذلك ، عند كتابة عارض ميزة مخصصة ، يمكنك رسم أي شيء تريده باستخدام عدد من الطرق المختلفة. لمعرفة المزيد ، راجع القسم الخاص بكتابة عارض المعالم المخصص في توسيع ArcObjects.

للسماح بإلغاء العرض المعقد في منتصف عملية السحب ، يتحقق العارض عادةً من كائن TrackCancel بعد كل ميزة أو مجموعة من الميزات. إذا حدث إجراء إلغاء ، فسيخرج العارض.

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

عادةً ما ترسم عارضات الميزات فقط الميزات أثناء مرحلة الجغرافيا ، على الرغم من أنه في بعض الحالات يتم رسم الميزات في مرحلة التعليقات التوضيحية. خذ على سبيل المثال حالة يتم فيها رسم الرموز المتناسبة لعناصر المضلع. يرسم ProportionalSymbolRenderer رمز تعبئة الخلفية أثناء مرحلة الجغرافيا ورمز العلامة ذات الحجم المتناسب أثناء مرحلة التعليق التوضيحي.

توفر المنتج

المنصات المدعومة

محدد بواسطة: draw in interface IFeatureRenderer Parameters: cursor - مرجع إلى com.esri.arcgis.geodatabase.IFeatureCursor (in) drawPhase - A com.esri.arcgis.system.esriDrawPhase عرض (في) - مرجع إلى كوم .esri.arcgis.display.IDisplay (in) trackCancel - إشارة إلى com.esri.arcgis.system.ITrackCancel (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetSymbolByFeature

توفر المنتج

محدد بواسطة: getSymbolByFeature في الواجهة IFeatureRenderer Parameters: feature - مرجع إلى com.esri.arcgis.geodatabase.IFeature (in) إرجاع: مرجع إلى com.esri.arcgis.display.ISymbol Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

IsRenderPhase

توفر المنتج

محدد بواسطة: isRenderPhase في الواجهة IFeatureRenderer Parameters: drawPhase - A com.esri.arcgis.system.esriDrawPhase ثابت (in) العوائد: النتيجة: java.io.IOException - إذا كانت هناك مشاكل بينية. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetExclusionSetByRef

وصف

قائمة معرفات الميزات التي سيتم استبعادها من الرسم.

ملاحظات

تدعم بعض عارضات الميزات IDataExclusion مما يسمح لك بإنشاء جملة where لاستبعاد الميزات.

يمنع الاستبعاد الميزات من الرسم. لمنع الميزات من الرسم وكذلك من الظهور في الجداول ونتائج الاستعلام ، قم بتعيين استعلام تعريف الطبقة باستخدام IFeatureLayerDefinition.

توفر المنتج

المنصات المدعومة

محدد بواسطة: setExclusionSetByRef في الواجهة IFeatureRenderer Parameters: rhs1 - مرجع إلى com.esri.arcgis.carto.IFeatureIDSet (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

تحديث

محدد بواسطة: update in interface IFeatureRendererUpdate Parameters: pFeatureLayer - إشارة إلى com.esri.arcgis.carto.IFeatureLayer (in) Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

SetCurrentDrawLevel

محدد بواسطة: setCurrentDrawLevel في الواجهة ILevelRenderer Parameters: rhs1 - يلقي rhs1 (in): java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetLevelArray

محدد بواسطة: getLevelArray في الواجهة إرجاع ILevelRenderer: A Variant Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetLegendGroupCount

ملاحظات

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

توفر المنتج

المنصات المدعومة

محدد بواسطة: getLegendGroupCount في الواجهة إرجاع ILegendInfo: العدد Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetLegendGroup

توفر المنتج

محدد بواسطة: getLegendGroup في الواجهة ILegendInfo Parameters: index - الفهرس (in) يرجع: مرجع إلى com.esri.arcgis.carto.ILegendGroup Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

GetLegendItem

ملاحظات

يتم تنسيق معلومات وسيلة إيضاح الطبقة أو جهاز العرض بشكل إضافي للعرض في ArcMap Legends. يمكن أن يتجاوز العارض هذا التنسيق عن طريق إرجاع عنصر LegendItem لهذه الخاصية. لا تقوم عارضات ESRI عادةً بإرجاع أي شيء لهذه الخاصية. باستخدام هذا التكوين ، يصبح تنسيق وسيلة الإيضاح اختيار المستخدم أو المطور في كائن وسيلة الإيضاح.

توفر المنتج

المنصات المدعومة

محدد بواسطة: getLegendItem في الواجهة إرجاع ILegendInfo: مرجع إلى com.esri.arcgis.carto.ILegendItem Throws: java.io.IOException - إذا كانت هناك مشاكل في التشغيل المتداخل. AutomationException - إذا ألقى مكون ArcObject استثناءً.

IsSymbolsAreGraduate

وصف

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

ملاحظات

على سبيل المثال ، يقوم عارض الرمز النسبي بإرجاع True لهذه الخاصية.

يمكنك استخدام هذه الخاصية للتمييز بين طبقة يتم ترميزها بلون متدرج أو ترميز طبقة نوع رمز متدرج. يستخدم كل من هذين الرمزين ClassBreaksRenderer ، ولكن فقط رمز متدرج سيعيد True لهذه الخاصية.


هل تريد تحرير المؤشرات باستخدام ArcObjects؟ - نظم المعلومات الجغرافية

فئة COM "النقطية". تم إنشاؤه في 19/3/2015 1:20:42 مساءً من "C: ArcGIS COM esriDataSourcesRaster.olb"

الوصف "تمثيل في الذاكرة لخطوط نقطية ديناميكية يمكنه إجراء إعادة التشكيل وإعادة الإسقاط. 'خيارات المولد: PromptForTypeLibraries = False ClashPrefix = esri_ LowerCaseMemberNames = True IDispatchOnly = False RetryOnReject = False AwtForOcxs = True ArraysAsObjects = False DontRenameSameMethods = True GenethoconflictingInterfods

ملخص ميداني
الحقول موروثة من الواجهة com.esri.arcgis.geodatabase.IRaster
IID ، IIDaeec7d31_1533_11d2_8d25_0000f8780535 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.datasourcesraster.IRaster2
IID ، IID0d668d08_92c1_4999_9a77_490790821969 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.datasourcesraster.IRasterEdit
IID، IID32656121_4df9_45f3_bdd1_507d481e9b49، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.datasourcesraster.IRasterProps
IID ، IID4b7b1bd0_a705_11d2_8e30_00a0249480f0 ، xxDummy
الحقول الموروثة من الواجهة com.esri.arcgis.datasourcesraster.IRasterBandCollection
IID ، IID7aca3d10_0629_11d2_8d24_0000f8780535 ، xxDummy
الحقول الموروثة من الواجهة com.esri.arcgis.datasourcesraster.IRasterDefaultProps
IID ، IIDe3afbee0_2dad_11d3_a3f6_0004ac1b1d86 ، xxDummy
الحقول الموروثة من الواجهة com.esri.arcgis.datasourcesraster.IRasterAnalysisProps
IID ، IID31e5ff30_2dad_11d3_a3f6_0004ac1b1d86 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.ISupportErrorInfo
IID ، IIDdf0b3d60_548f_101b_8e65_08002b2bd119 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.geodatabase.ISaveAs2
IID ، IIDba3968e7_a18b_416d_8140_e4a06068cf1b ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.geodatabase.ISaveAs
IIDc7a92e97_597e_4a69_a872_29cb60b5e0db
الحقول موروثة من الواجهة com.esri.arcgis.system.IClone
IID ، IID9bff8aeb_e415_11d0_943c_080009eebecb ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.datasourcesraster.IPixelOperation
IID ، IID467f7216_8ac1_4aac_98bb_e656c135567a ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.datasourcesraster.IRawBlocks
IID ، IIDf20ff8ff_643a_4669_a465_e14a5095e7dd ، xxDummy
الحقول الموروثة من الواجهة com.esri.arcgis.datasourcesraster.IRasterResamplingControl
IID ، IIDdfef659c_012d_41ae_965d_5e1ec4841add ، xxDummy
ملخص المنشئ
النقطية ()
يُنشئ البيانات النقطية باستخدام ArcGIS Engine.
النقطية (java.lang.Object obj)
إهمال. اعتبارًا من ArcGIS 9.2 ، تم استبداله بقوالب Java العادية.
النقطية النقطية = (النقطية) obj
ملخص الطريقة
فارغ add (عنصر IRasterBand ، فهرس int)
يضيف RasterBand إلى مجموعة النطاق.
فارغ appendBand (عنصر IRasterBand)
لإلحاق RasterBand بمجموعة النطاق.
فارغ appendBands (عصابات IRasterBandCollection)
لإلحاق مجموعة من RasterBands بمجموعة النطاق.
فارغ تعيين (IClone src)
يعين خصائص src إلى جهاز الاستقبال.
قيمة منطقية canEdit ()
للتحقق مما إذا كان يمكن تحرير هذه البيانات النقطية.
قيمة منطقية canSaveAs (تنسيق java.lang.String)
للتحقق مما إذا كان يمكن حفظه كمجموعة بيانات ثابتة جديدة بتنسيق معين.
فارغ صافي ()
يزيل كل العناصر في المجموعة.
IRasterCursor createCursor ()
يخصص مؤشر نقطي للمسح النقطي السريع.
IRasterCursor createCursorEx (IPnt pBlockSize)
ينشئ مؤشرًا بحجم كتلة بكسل محدد أو حجم كتلة أصلي.
IPixelBlock createPixelBlock ()
قم بإنشاء كتلة بكسل متوافقة.
IPixelBlock createPixelBlock (حجم IPnt)
يخصص PixelBlock بالحجم المطلوب.
قيمة منطقية يساوي (java.lang.Object o)
قارن هذا الكائن بآخر
فارغ محو (IPnt pTlc ، IPixelBlock pPixelBlock)
يمحو PixelBlock بدءًا من الزاوية العلوية اليسرى المحددة.
ايكلون esri_clone ()
استنساخ جهاز الاستقبال وتخصيص النتيجة لـ * استنساخ.
فارغ تدفق ()
يتدفق البيانات المخزنة مؤقتًا.
IEnvelope getAnalysisExtent ()
مدى تحليل البيانات النقطية.
إيتابل getAttributeTable ()
جدول سمات القيمة النقطية.
IRasterBand getBandByName (اسم java.lang.String)
تسمية RasterBand باسمها.
int getBandIndex (اسم java.lang.String)
فهرس RasterBand بالاسم.
IEnumRasterBand getBands ()
جميع النطاقات في المجموعة كواجهة لكائن العداد RasterBands.
java.lang.String ثابت getClsid ()
getClsid.
IRasterColormap getColormap ()
خريطة الألوان.
int getCount ()
عدد العصابات في المجموعة.
IEnvelope getDefaultIntersectExtent ()
مدى التقاطع الافتراضي.
مزدوج getDefaultPixelHeight ()
حجم البكسل الافتراضي في Y.
مزدوج getDefaultPixelWidth ()
حجم البكسل الافتراضي في X.
مرجعية ISPAL getDefaultSpatialReference ()
الإسناد المكاني الافتراضي.
IEnvelope getDefaultUnionExtent ()
مدى الاتحاد الافتراضي.
IEnvelope getExtent ()
مدى النقطية.
IGeodataXform getGeodataXform ()
تحويل البيانات الجغرافية.
IGeoTransformationOperationSet getGeoTransformations ()
مجموعة التحولات الجغرافية المطلوب تطبيقها.
int getHeight ()
الارتفاع بالبكسل.
com.esri.arcgis.interop.Dispatch getJintegraDispatch ()
إهمال. للإستخدام الداخلي فقط.
java.lang.Object getNoDataValue ()
تستخدم قيمة البيانات للإشارة إلى بيانات غير صالحة أو مستبعدة.
IPixelFilter getPixelFilter ()
مرشح البكسل لتصفية قيم البكسل.
مزدوج getPixelHeight ()
ارتفاع البكسل في دقة الأرض.
int getPixelType ()
نوع بيانات البكسل.
java.lang.Object getPixelValue (int iBand ، int iColumn ، int iRow)
الحصول على قيمة البكسل لنطاق معين في عمود وصف معين.
مزدوج getPixelWidth ()
عرض البكسل بدقة الأرض.
IRasterDataset getRasterDataset ()
مجموعة البيانات النقطية الأصل.
معلومات IRaster getRasterInfo ()
المعلومات النقطية.
IRasterXformer getRasterXformer ()
المحولات النقطية.
int getResampleMethod ()
طريقة الاستيفاء المستخدمة عند قراءة البكسل.
int getResamplingHint ()
تلميح إعادة تشكيل البيانات النقطية.
مرجعية ISPAL getSpatialReference ()
SpatialReference للنقطية.
int getWidth ()
العرض بالبكسل.
int hashCode ()
رمز التجزئة لهذا الكائن
فارغ interfaceSupportsErrorInfo (GUID riid)
الواجهة يدعم معلومات الخطأ
قيمة منطقية isEqual (أيكلون أخرى)
يشير إلى ما إذا كان جهاز الاستقبال والآخر لهما نفس الخصائص.
قيمة منطقية isIdentical (أيكلون أخرى)
يشير إلى ما إذا كان جهاز الاستقبال والآخر هو نفس الكائن.
قيمة منطقية isInteger ()
يشير إلى ما إذا كانت البيانات عدد صحيح.
IRasterBand العنصر (مؤشر النطاق الدولي)
تُرجع RasterBand وفقًا لفهرسها.
فارغ جعل دائم ()
يجعل البيانات النقطية المؤقتة مجموعة بيانات نقطية دائمة.
فارغ mapToPixel (مزدوج x ، مزدوج y ، int [] pColumn ، int [] pRow)
يحول موقعًا (س ، ص) في مساحة الخريطة إلى مساحة بكسل.
IPnt يعني حجم الخلية ()
إرجاع الحجم التقريبي لخلية البيانات النقطية.
فارغ pixelToMap (int iColumn، int iRow، double [] pX، double [] pY)
يحول موقعًا (عمود ، صف) في مساحة البكسل إلى مساحة على الخريطة.
فارغ قراءة (IPnt tlc، IPixelBlock block)
اقرأ مجموعة من وحدات البكسل تبدأ من الزاوية اليسرى العليا.
فارغ readBlock (int tx، int ty، int level، IPixelBlock pPixelBlock)
يقرأ كتلة بكسل خام.
فارغ تحديث ()
تحديث RasterDataset المرتبطة.
فارغ إطلاق سراح ()
حرر البيانات النقطية.
فارغ إزالة (فهرس int)
يزيل عنصر من المجموعة.
فارغ إعادة تعيين إلى الافتراضي ()
يعيد تعيين البيانات النقطية إلى الحالة الافتراضية
IDataset saveAs (java.lang.String new_name، IWorkspace worksp، java.lang.String format)
ينشئ RasterDataset جديدًا ثابتًا مع النطاقات الموجودة في المجموعة.
IRasterDataset saveAsRasterDataset (اسم java.lang.String ، مساحة عمل IWorkspace ، تنسيق java.lang.String ، IRasterStorageDef storageDef)
ينشئ مجموعة بيانات نقطية ثابتة جديدة بتنسيق محدد وتعريف تخزين محدد.
فارغ setAnalysisExtentByRef (IEnvelope ppExtent)
مدى تحليل البيانات النقطية.
فارغ setAttributeTableByRef (ITable ppVAT)
جدول سمات القيمة النقطية.
فارغ setColormapByRef (IRasterColormap ppColormap)
خريطة الألوان.
فارغ setExtent (IEnvelope ppExtent)
مدى النقطية.
فارغ setGeodataXform (IGeodataXform ppXform)
تحويل البيانات الجغرافية.
فارغ setGeoTransformsByRef (IGeoTransformationOperationSet ppGeoXforms)
مجموعة التحولات الجغرافية المطلوب تطبيقها.
فارغ setHeight (int pVal)
الارتفاع بالبكسل.
فارغ setNoDataValue (java.lang.Object pVal)
تستخدم قيمة البيانات للإشارة إلى بيانات غير صالحة أو مستبعدة.
فارغ setPixelFilterByRef (IPixelFilter ppFilter)
مرشح البكسل لتصفية قيم البكسل.
فارغ setPixelHeight (ارتفاع مزدوج)
ارتفاع البكسل في دقة الأرض.
فارغ setPixelType (int pVal)
نوع بيانات البكسل.
فارغ setPixelWidth (عرض مزدوج)
عرض البكسل بدقة الأرض.
فارغ setResampleMethod (int val)
طريقة الاستيفاء المستخدمة عند قراءة البكسل.
فارغ setResamplingHint (int pHint)
تلميح إعادة تشكيل البيانات النقطية.
فارغ setSpatialReference (ISpatialReference ppSpref)
SpatialReference للنقطية.
فارغ setWidth (int pVal)
العرض بالبكسل.
مزدوج toMapX (int iColumn)
قم بتعيين عمود بكسل على إحداثيات x في مساحة الخريطة.
مزدوج toMapY (int iRow)
قم بتعيين صف بكسل على الإحداثي y في مساحة الخريطة.
int toPixelColumn (مزدوج x)
قم بتعيين إحداثيات x في مساحة الخريطة على عمود البكسل.
int toPixelRow (ص مزدوج)
تعيين إحداثي y في مساحة الخريطة لصف البكسل.
فارغ الكتابة (IPnt pTlc ، IPixelBlock pPixelBlock)
يكتب PixelBlock بدءًا من الزاوية العلوية اليسرى المحددة.
فارغ writeBlock (int tx، int ty، int level، IPixelBlock pPixelBlock)
يكتب كتلة بكسل خام.
الطرق الموروثة من الفئة java.lang.Object
clone، finalize، getClass، notify، notifyAll، toString، انتظر، انتظر، انتظر

النقطية

رميات: java.io.IOException - في حالة وجود مشكلات في التشغيل المتداخل java.net.UnknownHostException - إذا كانت هناك مشكلات في التشغيل المتداخل

النقطية

قم ببناء البيانات النقطية باستخدام مرجع لمثل هذا الكائن الذي تم إرجاعه من ArcGIS Engine أو Server. هذا يعادل لغويًا تحويل الهدف إلى نقطي.


هندسة نظم المعلومات الجغرافية

3 & # 8211 افتح Visual Studio (على سبيل المثال 2012) وقم بإنشاء مشروع جديد:

4 & # 8211 في علامة التبويب & # 8220Other Languages ​​& # 8221 ، حدد الخيار Python لأننا نستخدم مترجم CPython وقم بتعيين الخصائص الموضحة أدناه (قم بتغيير الحل واسم المشروع وفقًا لذلك) وانقر فوق موافق للتأكيد.

5 & ​​# 8211 Visual Studio سيخلق الحل والمشروع بما في ذلك ملف PythonExample.py.

6 & # 8211 في نافذة مستكشف الحلول ، انقر بزر الماوس الأيمن فوق مشروع PythonExample وأنشئ مجلدًا جديدًا.


هل تريد تحرير المؤشرات باستخدام ArcObjects؟ - نظم المعلومات الجغرافية

فئة COM "SimpleRenderer". تم إنشاؤه في 19/3/2015 1:20:41 مساءً من "C: ArcGIS COM esriCarto.olb"

الوصف "عارض بسيط حيث يتم رسم نفس الرمز لكل معلم. 'خيارات المولد: PromptForTypeLibraries = False ClashPrefix = esri_ LowerCaseMemberNames = True IDispatchOnly = False RetryOnReject = False AwtForOcxs = True ArraysAsObjects = False DontRenameSameMethods = True GenethoconflictingInterfods

ملخص ميداني
طويل ثابت الإصدار التسلسلي
الحقول موروثة من الواجهة com.esri.arcgis.carto.ISimpleRenderer
IID ، IIDf3435800_5779_11d0_98bf_00805f7ced21 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ILevelRenderer
IID و IIDdc3d8097_c1ed_11d2_9f21_00c04f6bc709 و xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IPropertySupport
IID ، IID8a11ad55_2f4f_11d3_9fa0_00c04f6bc6a5 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IPersistStream
IID، IID00000109_0000_0000_c000_000000000046، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IPersist
IID0000010c_0000_0000_c000_000000000046
الحقول موروثة من الواجهة com.esri.arcgis.carto.IRotationRenderer
IID ، IID2f2047a6_42bd_11d2_aafd_00c04fa334b3 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.IRotationRenderer2
IID ، IIDd85e5b0c_68b3_48c8_b8d2_087806273b47 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ISizeRenderer
IID ، IID5ba3418a_4ba5_431a_b879_f2539c7be5ff ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ITransparencyRenderer
IID و IIDfb20665d_db1c_11d2_9f2e_00c04f6bc709 و xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.display.IDisplayAdmin
IID ، IID12e361f0_1907_11d3_80c7_0080c79f0371 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.ILookupSymbol
IID ، IID736a377d_a1eb_4ce4_84b9_90f9588374c2 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IXMLSerialize
IID ، IIDc8545045_6615_48e3_af27_52a0e5fc35e2 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.system.IXMLVersionSupport
IID ، IID72ca65b9_13de_48b7_8443_717b69b72a99 ، xxDummy
الحقول موروثة من الواجهة com.esri.arcgis.carto.IExportSupport
IID ، IIDf6448010_3cc8_435e_b042_540e9a328f3b ، xxDummy
ملخص المنشئ
عارض بسيط ()
ينشئ SimpleRenderer باستخدام ArcGIS Engine.
SimpleRenderer (java.lang.Object obj)
إهمال. اعتبارًا من ArcGIS 9.2 ، تم استبداله بقوالب Java العادية.
SimpleRenderer theSimpleRenderer = (SimpleRenderer) obj
ملخص الطريقة
قيمة منطقية ينطبق (java.lang.Object pUnk)
يشير إلى ما إذا كان المتلقي يمكنه تطبيق الكائن المحدد في أي وقت.
java.lang.Object تطبيق (java.lang.Object newObject)
يطبق الخاصية المحددة على جهاز الاستقبال ويعيد الكائن القديم.
قيمة منطقية canApply (java.lang.Object pUnk)
يشير إلى ما إذا كان المتلقي يمكنه تطبيق الكائن المحدد في تلك اللحظة بالذات.
قيمة منطقية canRender (IFeatureClass featClass ، عرض IDisplay)
يشير إلى إمكانية عرض فئة الميزة المحددة على الشاشة المحددة.
فارغ إلغاء التسلسل (بيانات IXMLSerializeData)
يلغي تسلسل كائن من XML.
فارغ رسم (مؤشر IFeatureCursor، int drawPhase، IDisplay display، ITrackCancel trackCancel)
يرسم المعالم من المؤشر المحدد على الشاشة المحددة.
قيمة منطقية يساوي (java.lang.Object o)
قارن هذا الكائن بآخر
فارغ getClassID (GUID [] pClassID)
getClassID
java.lang.String ثابت getClsid ()
getClsid.
java.lang.Object getCurrent (java.lang.Object pUnk)
الكائن قيد الاستخدام حاليا.
java.lang.String getDescription ()
وصف العارض.
com.esri.arcgis.interop.Dispatch getJintegraDispatch ()
إهمال. للإستخدام الداخلي فقط.
java.lang.String getLabel ()
تسمية العارض.
ILegendGroup getLegendGroup (فهرس int)
مجموعة وسيلة الإيضاح في الفهرس المحدد.
int getLegendGroupCount ()
عدد مجموعات وسيلة الإيضاح التي يحتوي عليها الكائن.
العنصر getLegendItem ()
اختياري.
java.lang.Object getLevelArray ()
مصفوفة تحتوي على جميع المستويات المستخدمة من قبل الرموز ، (الرموز بدون مستوى تحصل على مستوى 0).
java.lang.String getMinNamespaceSupported ()
الحد الأدنى لمساحة الاسم التي يمكن للفئة إجراء تسلسل إليها (على سبيل المثال ، مساحة الاسم 90).
java.lang.String getRotationField ()
مجال الدوران.
int getRotationType ()
نوع الدوران.
فارغ getSizeMax (_ULARGE_INTEGER [] pcbSize)
getSizeMax
java.lang.String getSizeRendererExpression ()
يحصل على تعبير عن الحجم.
int getSizeRendererFlags ()
الحصول على أعلام تحجيم مكونة من enum esriSizeRendererFlags.
فارغ getSizeRendererRandomRange (مزدوج [] pMinSize ، مزدوج [] pMaxSize)
يحصل على نطاق الحجم للتحجيم العشوائي.
ISymbol getSymbol ()
رمز يستخدم لرسم كل ميزة.
ISymbol getSymbolByFeature (ميزة IFeature)
يستخدم الرمز لرسم الميزة المحددة.
فارغ getSymbolRotation3DExpressions (java.lang.String [] pExpressionX، java.lang.String [] pExpressionY، java.lang.String [] pExpressionZ)
الحصول على تعبيرات للدوران حول كل محور.
int getSymbolRotation3DFlags ()
الحصول على أعلام استدارة مكونة من esriSymbolRotation3DFlags.
فارغ getSymbolRotation3DFlags2 (int [] pFlagX، int [] pFlagY، int [] pFlagZ)
يحصل على علم واحد لكل محور.
فارغ getSymbolRotation3DRandomRanges (double [] pMinRotationX، double [] pMinRotationY، double [] pMinRotationZ، double [] pMaxRotationX، double [] pMaxRotationY، double [] pMaxRotationZ)
يحصل على نطاق دوران لكل محور (للدوران العشوائي).
int getSymbolRotation3DRotationTypeZ ()
الحصول على نوع الاستدارة (جغرافيًا أو حسابيًا) حول المحور Z (الحساب الثابت حول المحاور الأخرى).
java.lang.String getTransparencyField ()
مجال الشفافية.
int hashCode ()
رمز التجزئة لهذا الكائن
فارغ متسخ ()
متسخ
قيمة منطقية isRenderPhase (int drawPhase)
يشير إلى ما إذا كان العارض يستخدم مرحلة الرسم المحددة.
قيمة منطقية isSymbolsAreGraduated ()
يشير إلى ما إذا كانت الرموز متدرجة.
قيمة منطقية isUsesFilter ()
يشير إلى ما إذا كان الكائن الحالي يرسم باستخدام مرشح.
فارغ تحميل (IStream pstm)
حمل
ISymbol lookupSymbol (boolean firstPass، IFeature feature)
إرجاع مرجع إلى رمز جهاز العرض لميزة الإدخال.
فارغ PreparFilter (IFeatureClass fc ، الاستعلام IQueryFilterFilter)
تحضير عامل تصفية الاستعلام لعملية العرض.
فارغ readExternal (java.io.ObjectInput in)
فارغ إطلاق سراح ()
حرر SimpleRenderer.
فارغ resetLookupSymbol (رمز ISymbol)
يعيد تعيين الخيارات المؤقتة على الرمز (على سبيل المثال
فارغ حفظ (IStream pstm ، int fClearDirty)
حفظ
فارغ إنشاء تسلسل (بيانات IXMLSerializeData)
تسلسل كائن إلى XML.
فارغ setCurrentDrawLevel (int rhs1)
مستوى السحب الحالي ، (اضبطه على -1 لرسم كل المستويات).
فارغ setDescription (نص java.lang.String)
وصف العارض.
فارغ setExclusionSetByRef (IFeatureIDSet rhs1)
مرجع كائن لمجموعة استثناءات رسم مؤقتة.
فارغ setExportInfoByRef (IFeatureExportInfoGenerator rhs1)
oject المساعد لتوليد معلومات التصدير.
فارغ setLabel (تسمية java.lang.String)
تسمية العارض.
فارغ setRotationField (java.lang.String fieldName)
مجال الدوران.
فارغ setRotationType (نوع int)
نوع الدوران.
فارغ setSizeRendererExpression (java.lang.String pExpression)
يحصل على تعبير عن الحجم.
فارغ setSizeRendererFlags (int pFlags)
الحصول على أعلام تحجيم مكونة من enum esriSizeRendererFlags.
فارغ setSizeRendererRandomRange (حجم صغير مزدوج ، حجم أقصى مزدوج)
يضبط نطاق الحجم للتحجيم العشوائي.
فارغ setSymbolByRef (رمز ISymbol)
رمز يستخدم لرسم كل ميزة.
فارغ setSymbolRotation3DExpressions (تعبير java.lang.StringX ، تعبير java.lang.StringY ، java.lang.String ExpressZ)
يضبط التعبيرات للدوران حول كل محور.
فارغ setSymbolRotation3DFlags (int pFlags)
الحصول على أعلام استدارة مكونة من esriSymbolRotation3DFlags.
فارغ setSymbolRotation3DFlags2 (int flagX ، int flagY ، int flagZ)
يعيّن علامة واحدة لكل محور.
فارغ setSymbolRotation3DRandomRanges (double minRotationX، double minRationY، double minRotationZ، double maxRotationX، double maxRotationY، double maxRotationZ)
يضبط نطاق الدوران لكل محور (للدوران العشوائي).
فارغ setSymbolRotation3DRotationTypeZ (int pType)
الحصول على نوع الاستدارة (جغرافيًا أو حسابيًا) حول المحور Z (الحساب الثابت حول المحاور الأخرى).
فارغ setSymbolsAreGraduated (الرموز المنطقيةAreGraduated)
يشير إلى ما إذا كانت الرموز متدرجة.
فارغ setTransparencyField (java.lang.String fieldName)
مجال الشفافية.
فارغ writeExternal (java.io.ObjectOutput out)
الطرق الموروثة من الفئة java.lang.Object
clone، finalize، getClass، notify، notifyAll، toString، انتظر، انتظر، انتظر

الإصدار التسلسلي

عارض بسيط

رميات: java.io.IOException - في حالة وجود مشكلات في التشغيل المتداخل java.net.UnknownHostException - إذا كانت هناك مشكلات في التشغيل المتداخل

عارض بسيط

أنشئ SimpleRenderer باستخدام مرجع لمثل هذا الكائن الذي تم إرجاعه من ArcGIS Engine أو Server. هذا يعادل لغويًا تحويل الهدف إلى SimpleRenderer.


الرمال

منتجات ESRI تأتي ArcGIS Explorer و ArcGIS Desktop و ArcGIS Engine مع مكتبة DLL C مفيدة للغاية تسمى مكتبة محرك الإسقاط. يتم استخدام محرك الإسقاط بواسطة هذه المنتجات لإجراء حسابات جيوديسية (أو بيضاوية).

تم توثيق محرك الإسقاط بالكامل في واجهة برمجة تطبيقات SDE C ويوجد نموذج مجمّع VB6 لوظيفتين على موقع ويب EDN.

يمكن نقل نموذج VB6 بسهولة إلى C # باستخدام DLLImportAttribute. ومع ذلك ، هناك نوعان من عيوب استخدام DLLImport.

    يتم تحميل s في الذاكرة في كل مرة يتم استدعاء وظيفة ،
  1. يتم ترميز اسم الملف والمسار إلى DLL الثابت في وقت التصميم.

ولكن مع .NET 2.0 تمت إضافة أسلوب جديد يسمى GetDelegateForFunctionPointer إلى فئة Marshal للسماح بالربط المتأخر. هذا يعني أنه يمكن اكتشاف مكتبات DLL الخارجية وتحميلها في وقت التشغيل.

يوجد أدناه غلاف C # لمحرك الإسقاط ESRI. تم تطوير الغلاف كملف مفرد بحيث يتم تحميل DLL مرة واحدة فقط لكل مثيل تطبيق. بالإضافة إلى ذلك ، يتم اكتشاف موقع مكتبة محرك الإسقاط في وقت التشغيل من السجل.

فيما يلي مثال باستخدام محرك الإسقاط الفردي لـ ArcGIS Explorer لحساب المسافة الجيوديسية بين لندن وباريس. المسافة الجيوديسية هي أقصر مسافة بين نقطتين على سطح الشكل الإهليلجي.

هنا هو الكود المصدري للأغلفة.

يرجى ملاحظة أن الكود والمنهجية المستخدمة في هذا المنشور لم يتم اعتمادها أو دعمها من قبل ESRI. استخدم هذا الرمز على مسؤوليتك الخاصة.

ArcGIS Diagrammer - عكس الهندسة لقاعدة بيانات جغرافية إلى رسم تخطيطي

سيصف هذا المنشور كيفية إنشاء مخطط جاهز للطباعة لقاعدة البيانات الجغرافية الخاصة بك في أربع خطوات سهلة.

سيستخدم هذا التمرين ArcGIS Diagrammer (مجاني) المتاح من ArcScripts. تتضمن المتطلبات الأساسية لـ ArcGIS Diagrammer ArcGIS Desktop 9.2 و Microsoft .NET Framework 2.0.

الخطوة 1: تصدير قاعدة بيانات جغرافية موجودة إلى مستند مساحة عمل ESRI XML

انقر بزر الماوس الأيمن على قاعدة بيانات جغرافية شخصية أو قاعدة بيانات جغرافية ملف أو اتصال SDE. يختار تصدير & gt XML Workspace مستند.

يختار المخطط فقط وأدخل اسم ملف الإخراج. على سبيل المثال C: Temp Montgomery.xml. انقر التالي.

انقر ينهي لبدء التصدير.

الخطوة 2: تحميل مستند مساحة عمل XML في ArcGIS Diagrammer

ابدأ ArcGIS Diagrammer بالنقر فوق:
بدء جميع البرامج & gt ArcGIS & gt ArcGIS Diagrammer & gt ArcGIS Diagrammer

قم بسحب وإسقاط ملف XML الذي تم إنشاؤه بواسطة ArcCatalog في لوحة ArcGIS Diagrammer.

سيعرض ArcGIS Diagrammer جميع كائنات قاعدة البيانات الجغرافية والارتباطات. قد ترغب في تغيير مقياس الرسم التخطيطي ، على سبيل المثال ، لتغيير مقياس التكبير / التصغير إلى 25٪ نقرة عرض & gt تكبير & gt 25٪.

الخطوة 3: ترتيب كائنات قاعدة البيانات الجغرافية

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

الخطوة 4: اطبع الرسم التخطيطي

قبل طباعة الرسم التخطيطي أو رسمه ، قد ترغب في تحديد طابعة / راسمة وحجم الورق. انقر ملف & gt إعداد الطباعة.

في مربع حوار إعداد الطابعة ، حدد طابعة وحجم الورق.

أخيرًا ، انقر فوق ملف & GT طباعة لإرسال الرسم التخطيطي للطباعة / التخطيط.

الوصول إلى ملفات نمط ESRI باستخدام ADO.NET

منتجات ESRI يستخدم ArcGIS Engine و ArcGIS Desktop و ArcGIS Server ملفات الأنماط لتخزين وإدارة مجموعات الرموز. الرمز هو رسم يستخدم لتمثيل معلم جغرافي أو فئة من المعالم. تحتوي الأنماط على رموز مسماة ومصنفة للعديد من الكيانات الجغرافية مثل النقاط والخطوط والمضلعات.

ملفات نمط ArcGIS Engine و ArcGIS Desktop هي قواعد بيانات Microsoft Access ذات ملف نمط امتداد الملف.

تستخدم ملفات نمط ArcGIS Server نوع ملف خاص ولها امتداد نمط الخادم امتداد الملف. يمكن للمطورين استخدام ArcObjects API فقط للوصول إلى هذا الملف.

يمكن لمطوري ArcGIS Engine استخدام SymbologyControl لاستعراض الرموز الموجودة في نمط الخادم. بينما يمكن لمطوري ArcGIS Desktop إعادة استخدام مربعات حوار سطح المكتب مثل StyleManagerDialog و SymbolEditor و SymbolPickerDialog.

في هذا المنشور سأقدم عينة توضح كيفية الوصول إلى ملفات نمط ESRI باستخدام ADO.NET. سيوضح النموذج أيضًا كيفية تحويل رمز ESRI إلى صورة نقطية .NET. قد يكون هذا النموذج مفيدًا للمطورين الذين يرغبون في:
1) الوصول إلى الأنماط بدون استخدام ArcObjects ، أو
2) تخزين المعلومات المخصصة في ملف نمط ESRI ، أو
3) تحويل رموز ESRI إلى صور نقطية ، أو
4) إنشاء متصفح رمز مخصص.

يرجى ملاحظة أن الكود والمنهجية المستخدمة في هذا المنشور لم يتم اعتمادها أو دعمها من قبل ESRI. استخدم هذا الرمز على مسؤوليتك الخاصة.

تم تطوير هذا النموذج في C # باستخدام Microsoft Visual Studio 2005. يتكون تطبيق windows من أربعة عناصر تحكم ومكون واحد ، وهذه هي:
1) textBox1: اسم المسار إلى ملف النمط ،
2) button1: فتح ملف النمط وإضافة إدخالات إلى ListView ،
3) listView1: رمز العرض والأوصاف ،
4) axLicenseControl1: للتحقق من ArcGIS Engine أو ArcGIS Desktop في وقت التشغيل ،
5) imageList1: تخزين مجموعة من الصور لعناصر ListView.

عند تحميل النموذج:
1) يتم إضافة اسم مسار افتراضي إلى نمط TextBox ،
2) يتم إضافة أربعة أعمدة إلى ListView ،
3) عرض ListView هو نمط العرض الذي تم ضبطه على التفاصيل ،
4) يتم تعيين ImageList إلى خاصية SmallImageList الخاصة بـ ListView.

التطبيق ، عند تحميله ، يبدو هكذا.

إذا قمت بتشغيل هذا التطبيق في وضع التصحيح ، قد يطرح Microsoft Visual Studio 2005 استثناء PInvokeStackImbalance. يمكن التغلب على هذا عن طريق تشغيل التطبيق بشكل طبيعي من الملف القابل للتنفيذ أو عن طريق تعطيل هذا الاستثناء. يمكن تجاهل هذا الاستثناءات وغيرها من استثناءات التصحيح باستخدام نافذة الاستثناء (استثناءات التصحيح & GT. ).

لتحميل رموز النقطة والخط والمضلع من النمط إلى ListView ، انقر فوق اذهب!

هذا هو الكود المصدري للعينة:

ESRI Generic Get Position Tool

يشتمل منتج ArcGIS Desktop من ESRI على تطبيقات ArcCatalog و ArcMap و ArcScene و ArcGlobe. يمكن للمطورين تخصيص واجهات المستخدم لجميع التطبيقات الأربعة بشكل كبير ، على سبيل المثال ، يمكن للمطور نشر أشرطة الأدوات والأزرار المخصصة.

زر (أو أمر في مصطلحات ESRI) هي فئة COM التي تنفذ واجهة ICommand. تتطلب بعض الأوامر تفاعلًا جغرافيًا ، على سبيل المثال ، النقر فوق بلد في خريطة العالم. يجب أن تقوم هذه الأوامر بتنفيذ واجهة ITool.

عادة ، ينشئ المطورون مجموعات من الأوامر الخاصة بكل مشروع. في هذه المقالة سأناقش أمرًا خارج الصندوق يسمى Generic Get Point Tool والذي يمكن استخدامه للتفاعل على الخريطة / الكرة الأرضية. قد يؤدي استخدام هذا الأمر في المشاريع المستقبلية إلى تقليل وقت التطوير.

لتوضيح هذا الأمر ، قمت بإنشاء نموذج تطبيق windows يستند إلى ArcGIS Engine باستخدام Microsoft .Net Framework 2.0. يتكون التطبيق من خريطة وشريط أدوات غير مرئي وزر لتنشيط Generic Get Point Tool. بعد النقر على الخريطة ، سيعرض مربع رسالة إحداثيات الخريطة للموقع الذي تم النقر فوقه ثم إلغاء تنشيط الأداة.

تم إنشاء نموذج تطبيق windows (C #) باستخدام Microsoft Visual Studio 2005. وهو يتكون من عنصر تحكم في الخريطة والتحكم في شريط الأدوات والتحكم في الترخيص وزر. يتم تعيين عنصر تحكم الخريطة إلى خاصية رفيق عنصر تحكم شريط الأدوات ويتم تعيين عنصر تحكم الخريطة مستند خريطة ليتم تحميله في وقت التشغيل.

عندما يتم تحميل النموذج ، فإن ملف Generic Get Point Tool يضاف إلى شريط الأدوات ثم عن طريق إرسال الأمر إلى IToolPositionInitializer ، يتم تعيين النموذج باعتباره رد الاتصال (لأنه يدعم IToolPositionCallback).

عند النقر فوق الزر ، يتم وضع أداة Generic Get Point Tool على شريط الأدوات ثم يتم تعيينها كأداة حالية. يؤدي هذا إلى تنشيط الأداة بشكل أساسي وإلغاء تنشيط الأداة النشطة سابقًا (إن وجدت).

عندما ينقر المستخدم على شاشة الخريطة مع تنشيط Generic Get Point Tool ، سيسمى الأمر طريقة MouseClicked على واجهة IToolPositionCallback. في النموذج ، يقوم النموذج بتنفيذ هذه الواجهة ويعرض مربع رسالة يعرض إحداثيات الخريطة. بدلاً من ترك الأداة نشطة ، قم بتعيين IToolbarControl :: CurrentTool (أو IMapControl :: CurrentTool) لإلغاء تنشيط الأداة بشكل لاغٍ.

محرر ArcGIS Tablet

تم نشر مجموعة من أوامر ArcMap مؤخرًا على موقع ويب ArcScripts الخاص بـ ESRI والتي تستهدف إمكانات الكمبيوتر اللوحي. على وجه التحديد ، الحبر الرقمي والتعرف على النص وتحويل النص إلى كلام (TTS) والتعرف على الكلام.

يمكن تنزيل محرر ArcGIS Tablet من هنا:
http://arcscripts.esri.com/details.asp؟dbid=14921 (يتم توفير شفرة المصدر الكاملة)

المتطلبات الأساسية:

كيفية تثبيت:

قم بتنزيل ملف ZIP من ArcScripts
قم بفك ضغط التنزيل
انقر نقرًا مزدوجًا فوق ملف "msi". اتبع تعليمات معالج التثبيت.

كيف تبدأ؟

بدء ArcMap (Windows: Start & gt ArcGIS & gt ArcMap)
عرض شريط أدوات محرر الجهاز اللوحي (ArcMap: عرض & gt أشرطة الأدوات & gt Tablet Editor)
قم بتحميل مستند الخريطة. لإظهار بعض الإمكانات المتقدمة ، أضف طبقة واحدة أو أكثر باستخدام جهاز عرض فريد.

لقطات العرض التوضيحي:

أداة محدد الميزات
لتحديد المعالم باستخدام الحبر ، انقر أولاً على طبقة في جدول محتويات ArcMap ثم قم بتنشيط أداة تحديد الميزة على شريط أدوات محرر الجهاز اللوحي. باستخدام جهاز التأشير ، اسحب الماوس فوق الشاشة. بمجرد رفع الماوس / القلم ، سيتم تحديد المعالم من الطبقة المحددة (إذا كان داخل الحبر).

أداة قياس الأبعاد اللفظية
انقر فوق أداة الأبعاد اللفظية (الثالثة من اليسار) على شريط أدوات محرر الكمبيوتر اللوحي. اسحب خط الحبر المستقيم على الشاشة. سيتحدث الكمبيوتر بالطول في وحدات الخريطة الحالية ، على سبيل المثال. "أربعة وثمانون مترا". سيتم تقريب الأطوال إلى أقرب وحدة خريطة.

أداة إضافة الميزات
الآن ، ابدأ جلسة تحرير (انقر فوق Editor & gt ابدأ التحرير من شريط أدوات المحرر). حدد الطبقة في جدول محتويات ArcMap التي ترغب في إضافة المعالم إليها. في لقطة الشاشة أعلاه ، يرغب المستخدم في إضافة المزيد من أعمدة الإنارة. انقر فوق أداة إضافة ميزات (الزر الأول على شريط أدوات محرر الكمبيوتر اللوحي) وارسم علامات صغيرة على الشاشة كما هو موضح أعلاه. عند الانتهاء ، قم بعمل إيماءة إلى اليمين باستخدام جهاز التأشير. سيؤدي ذلك إلى تحول شرطات الحبر الصغيرة إلى أعمدة إنارة جديدة.

أداة نقل السمات
باستخدام أداة إضافة ميزة في الخطوة السابقة ، تمت إضافة أربعة أعمدة إنارة جديدة. تبنت أعمدة الإنارة الجديدة أيًا كانت القيم الافتراضية المرتبطة بالفئة المميزة الأصلية (و / أو النوع الفرعي). مع استمرار تحديد طبقة Light Poles في جدول محتويات ArcMap ، انقر فوق أداة نقل السمات (الزر الثاني على شريط أدوات محرر الكمبيوتر اللوحي). ارسم حلقتين من الحبر ، كل منهما تدور حول عمود إنارة. عند استخدام إيماءات اليمين لأعلى ، سيتم نقل السمات من العمود المحدد بضربة الحبر الأولى إلى القطب (الأعمدة) المحدد بضربة الحبر الثانية.

محدث الحبر
مرة أخرى ، بينما لا تزال في جلسة تحرير ومع تحديد طبقة Light Poles في جدول محتويات ArcMap ، حدد عددًا قليلاً من الأعمدة باستخدام أداة تحديد الميزات (كما هو موضح سابقًا). الآن انقر فوق أداة Ink Updater (الزر الخامس على شريط أدوات محرر الكمبيوتر اللوحي). نظرًا لأن الطبقة المحددة تستخدم عارض فريدًا ، يمكن للمستخدم إعادة تصنيف الأعمدة المحددة عن طريق كتابة "f" متبوعة بإيماءة إلى اليمين. سيستخدم محرر الجهاز اللوحي نص الحبر للعثور على أول وصف مطابق (إن وجد) في الطبقة وتحديث السمات وفقًا لذلك. إذا لم يكن للطبقة عارض فريد أو إذا كنت تريد تحديد حقل صراحة لتحديثه ، فيمكنك النقر فوق قائمة الحقل المنسدلة لاختيار حقل لتحريره. محدث الحبر ذكي بما يكفي لتحويل الحبر إلى تنسيق البيانات المناسب ، على سبيل المثال ، سيتم تحويل الحبر إلى تاريخ إذا تم تحديد حقل التاريخ.

محدث الكلام
من المحتمل أن تكون هذه هي أروع أداة على شريط أدوات محرر الكمبيوتر اللوحي. لا يزال المستخدم في جلسة تحرير ، وهناك ثلاثة أعمدة إنارة محددة في الخريطة ويتم تحديد طبقة أعمدة الإنارة في جدول محتويات ArcMap. انقر فوق الزر Speech Updater (الزر السادس على شريط أدوات محرر الكمبيوتر اللوحي). الآن ، قل "جيد". سيقوم محرر الجهاز اللوحي تلقائيًا بإعادة تصنيف الأعمدة على أنها "جيدة". ستعمل هذه الأداة مع أي طبقة لها قيمة فريدة مصحوبة بأوصاف باللغة الإنجليزية المقروءة.


إحداثيات المطر: تنفيذ السحب والإفلات لتطبيق ArcGIS Silverlight Viewer

الخط الفاصل بين تطبيقات سطح المكتب والويب يزداد ضبابية باستمرار. يتوقع المستخدمون أكثر فأكثر التفاعل مع تطبيقات الويب بنفس الطريقة التي يتفاعل بها أي تطبيق يعمل على سطح المكتب المحلي. مثال على ذلك ، قم بالسحب والإفلات. قبل "Web 2.0" ، كانت فكرة إسقاط ملف من نظام الملفات المحلي على تطبيق ويب خيال علمي عمليًا. نظرًا لأن العديد من مستخدمي ArcGIS Online قد اكتشفوا ، يمكن اعتبار هذه الوظيفة الآن أمرًا مفروغًا منه. في هذا المنشور ، سأصف كيفية إنشاء سلوك مخصص يتيح سحب الملفات النصية وإفلاتها في عنصر تحكم خريطة ArcGIS Silverlight.

بالنسبة لأولئك غير المألوفين ، يوفر ArcGIS Silverlight Viewer إطار عمل لإنشاء تطبيقات خرائط مخصصة وفعالة بالكامل بسرعة دون كتابة تعليمات برمجية أو تعديل إعدادات التكوين. إطار العمل قابل للتوسيع أيضًا ، مما يسمح للمطور بإنشاء أدوات وتخطيطات وسلوكيات مخصصة مجمعة بشكل فردي يمكن توصيلها بـ ArcGIS Silverlight Viewer لاستخدامها في تطبيق الخرائط.

بينما تكون العملية الموضحة هنا خاصة برسم النقاط على خريطة ArcGIS Silverlight ، فقد تجدها مفيدة لإنشاء أنواع أخرى من السلوكيات لتطبيق عارض ArcGIS Silverlight أو لتمكين السحب والإفلات لأنواع أخرى من عناصر تحكم Silverlight (حتى ، & ltgulp & gt non -GIS منها!). إذا لم تكن مستعدًا للمضي قدمًا في التفاصيل ، فلا تتردد في تنزيل الكود المكتمل وتجربته. خلاف ذلك ، واصل القراءة!

بخلاف الأداة المخصصة أو التخطيط ، لا يتم تمثيل السلوك المخصص بالضرورة بواسطة عناصر واجهة المستخدم (UI) في التطبيق. بدلاً من ذلك ، من المرجح أن يستجيب السلوك لأحداث المستخدم التي تحدث كجزء من سير عمل التطبيق. قد تتضمن استجابة السلوك لحدث ما عرض عناصر واجهة المستخدم للمستخدم للتفاعل معها ، أو قد يقوم ببساطة بتنفيذ التعليمات البرمجية كاستجابة. السلوك الجاهز المتاح حاليًا في Silverlight Viewer ، على سبيل المثال ، هو عرض موقع x / y لمؤشر الماوس أثناء قيام المستخدم بتحريكه على الخريطة. كما يوحي الاسم ، يعد السلوك جزءًا جوهريًا من التطبيق يكون نشطًا بمجرد تحميل التطبيق. في الخطوات التالية ، سأصف عملية تنفيذ القدرة على سحب ملف نصي للإحداثيات إلى عنصر تحكم الخريطة وعرض المواقع في الملف كنقاط (رسومات) على الخريطة. سيتم إنشاء السلوك أولاً بدون استجابة إضافية مطلوبة من المستخدم: عند إسقاط الإحداثيات ، سيتم التحقق من التنسيق المناسب ثم رسمها فورًا على الخريطة. إنشاء مشروع عارض Silverlight من أجل تطوير الوظائف الإضافية لـ ArcGIS Silverlight Viewer ، ستحتاج إلى تثبيت ArcGIS Extensibility SDK for Silverlight (متاح للتنزيل على ArcGIS Resource Center). بالإضافة إلى توفير كل ما تحتاج إليه لإنشاء وظيفة إضافية في ESRI.ArcGIS.Client.Extensibility تجميع ، تحتوي SDK أيضًا على قالب مشروع Visual Studio لمساعدتك على البدء.

  • للبدء ، دعنا ننشئ مشروع Visual Studio جديد. إذا قمت بتثبيت ArcGIS Extensibility SDK لـ Silverlight ، فسترى مشروع "ESRI Viewer for Silverlight" في مربع حوار المشروع الجديد ، كما هو موضح أدناه (ضمن Silverlight / ESRI Viewer). نظرًا لأن الحل سيحتوي على العديد من المشاريع المتعلقة بتخصيص جوانب مختلفة من العارض (الأدوات والسلوكيات وعناصر التخطيط) ، فقد اخترت إعطائه اسمًا أكثر عمومية ، "ViewerCustomizations" (على عكس "DragDropCoords" ، على سبيل المثال).

لاحظ أنني اخترت إنشاء الوظيفة الإضافية الخاصة بي باستخدام C # ، لذلك ستختلف لقطات الشاشة وأوصاف التعليمات البرمجية عن مشروع تم إنشاؤه لـ VB.NET. عند فتح الحل ستلاحظ أنه يتكون من ثلاثة مشاريع متميزة:

  • عارض التخصيصات: هذا هو تطبيق Silverlight الذي سيستضيف الوظائف الإضافية المخصصة الخاصة بك. ستستخدم هذا لاختبار سلوكك المخصص.
  • عارض التخصيصات والإضافات: سيحتوي هذا المشروع على تخصيصات لـ ArcGIS Silverlight Viewer ، في حالتنا سلوك السحب والإفلات المخصص لملفات الإحداثيات. هذا هو المكان الذي سيتم فيه تطوير الأدوات المخصصة. لأغراضنا ، هذا هو المشروع الوحيد الذي سنحتاجه لكتابة رمز (بصرف النظر عن تعديل إعدادات التكوين في تطبيق العارض الرئيسي).
  • عارض التخصيصات: يحتوي هذا المشروع على نسخ من جميع قوالب التخطيط الجاهزة التي يستخدمها عارض Silverlight. هذا هو المكان الذي ستطور فيه تخطيط XAML الخاص بك للمشاهد ، ربما تبدأ بنسخة من واحدة موجودة.

بالإضافة إلى إنشاء هذه المشاريع الثلاثة ، يوفر قالب Visual Studio أيضًا وحدات تعليمات برمجية لتبدأ بأداة مخصصة ، وسلوك ، ومربعات حوار تكوين لوظائف العارض الإضافية. سنبدأ في تفصيل الوحدة المتوفرة لإنشاء سلوك مخصص (MyBehavior.cs).

  • في نافذة مستكشف الحلول ، ضمن مشروع ViewerCustomizations.AddIns ، حدد موقع فئة MyBehavior.cs وافتحه.

يجب أن يرث السلوك المخصص من System.Windows.Interactivity. السلوك الفئة الأساسية. توفر هذه الفئة آلية لإرفاق الحالة والأوامر بكائن. المعلمة العامة (في حالتنا خريطة) ، يشير إلى نوع الكائن الذي يمكن إرفاق السلوك به. بالإضافة الى سلوك الفئة الأساسية ، يمكن للسلوك المخصص أيضًا تنفيذ أعضاء ISupportsConfiguration من أجل حفظ وتحميل إعدادات التكوين المطلوبة للسلوك. لن نحتاج إلى العمل مع التكوين في هذا المثال.

إذا كنت ترغب في إتاحة سلوكك المخصص للمستخدمين في ArcGIS Application Builder ، يجب أن يكون لديك السمات التالية المحددة لفصلك الدراسي. يصدر: جزء من Microsoft Managed Extensibility Framework ، وهذا يشير ببساطة إلى أن السلوك يجب أن يكون متاحًا في إطار العمل. بالنسبة لسلوك الخريطة المخصص في ArcGIS Silverlight Viewer ، ستكون القيمة دائمًا typeof (السلوك & ltMap & gt). اسم العرض: اسم يظهر للسلوك في Application Builder. فئة: فئة اختيارية لتنظيم المكونات (السلوكيات والأدوات). وصف: ملخص موجز لما يوفره السلوك.

الآن وبعد أن أصبحت السباكة لفئة السلوك المخصص في مكانها الصحيح ، فلنقم بإنشاء وظيفة للتعامل مع حدث إسقاط لعنصر التحكم في الخريطة. سيقبل المعالج كائن DragEventArgs الذي سيحتوي على معلومات حول الكائن (ملف ، على سبيل المثال) الذي تم إسقاطه على الخريطة. في الوقت الحالي ، سنقوم ببساطة بعرض رسالة للتحقق من أن الحدث يتم رفعه.

سنختبر الآن السلوك المخصص للتأكد من معالجة حدث الإسقاط.

  • قم بتشغيل الحل.
  • استخدم مستكشف Windows لسحب ملف (أي نوع ملف) فوق الخريطة ، ثم قم بإسقاطه عن طريق تحرير الماوس.

عند إسقاط الملف ، ربما كنت تتوقع ظهور مربع الرسالة. ما هي السعادة ؟! نأسف لإزعاجك ... لا يزال أمامنا خطوتان يجب إكمالهما قبل أن يتم إنهاء سلوكنا بشكل كافٍ. لن يستغرق الأمر وقتًا طويلاً ، وعد.

لاحظ أن الإلغاء الوحيد الذي يجب تنفيذه على فئة أساس السلوك هو OnAttached وظيفة.هذا هو الكود الذي يتم تنفيذه عندما يتم إرفاق السلوك المخصص في البداية بالكائن المرتبط به ، والذي في حالتنا هو الخريطة.

  • انتقل إلى وظيفة OnAttached في الوحدة النمطية للتعليمات البرمجية MyBehavior.cs.
  • قم بإزالة جميع رموز لوحة المرجل من وظيفة OnAttached ، باستثناء السطر (الأولي) الذي يستدعي وظيفة OnAttached على الكائن الأساسي:
  • في تجاوز OnAttached ، أسفل الكود الحالي ، قم بتوفير الكود أدناه إلى ...
  1. قم بإعداد عنصر الخريطة كهدف إسقاط (قم بتمكين السحب والإفلات)
  2. حدد الوظيفة التي ستتعامل مع حدث الإفلات (وظيفة MapDrop التي تم إنشاؤها أعلاه)
  • احفظ وابني الحل.
  • قم بتشغيل تطبيق Silverlight Viewer مرة أخرى واسحب ملفًا من Windows Explorer إلى الخريطة.

عند إسقاط الملف على الخريطة ، من المفترض أن يظهر مربع الرسالة. لا؟ حسنًا ، كان ذلك يعني ... آخر مرة ، أقسم بذلك. لدينا شيء واحد فقط لربطه.

لتضمين أداة أو سلوك جديد في تطبيق ArcGIS Silverlight Viewer ، يجب عليك تحرير إعدادات التكوين المناسبة للموقع. يحتوي كل تطبيق عارض على دليل "تكوين" ضمن المجلد الجذر الخاص به والذي يحتوي على عدة ملفات تكوين بتنسيق xml. لتضمين سلوكك المخصص ، ستحتاج إلى تعديل إعدادات Behaviors.xml.

  • في نافذة مستكشف الحلول ، في مجلد التكوين ضمن مشروع ViewerCustomizations ، حدد موقع ملف Behaviors.xml وافتحه.

تم تكوين تطبيق العارض لاستخدام سلوك يسمى "MyBehavior" ، والذي كان الاسم الأصلي لفئة السلوك لدينا. نظرًا لأننا قمنا بتغيير الاسم إلى DropCoordinatesBehavior ، نحتاج إلى تحديث إعداد التكوين ليعكس التغيير.

  • قم بتغيير تكوين السلوك لاستخدام الاسم الجديد للفئة ، DropCoordinatesBehavior ، كما هو موضح أدناه.
  • احفظ ملف التكوين Behaviors.xml وقم بتشغيل المشروع.
  • مرة أخرى ... اسحب ملفًا من مستكشف Windows وأسقطه على الخريطة.

صدقني ، هذه المرة كان يجب أن يظهر مربع الرسالة. إذا لم تكن قد ارتكبت خطأ في مكان ما. تحقق من الخطوات المذكورة أعلاه وتأكد من: 1) تقوم وظيفة OnAttached بتوصيل هدف الإسقاط ومعالج حدث الإفلات ، و 2) تم تكوين ملف Behaviors.xml باستخدام اسم الفئة الصحيح. عندما تصلحها ، قابلني في القسم أدناه. سوف انتظر.

  • تجاهل مربع الرسالة والتوقف عن تشغيل التطبيق. في الخطوات التالية ، سنقرأ محتويات الملف الذي تم إسقاطه.

قم بإسقاط قنبلة F ("ملف" بالطبع)

سنضيف الآن رمزًا سيلقي نظرة فاحصة على الملف الذي تم إسقاطه على الخريطة. سوف نتأكد من قيام المستخدم بإسقاط ملف واحد فقط وأنه من النوع المناسب (نص محدد بفاصلة مع أزواج إحداثيات). يتم تمرير كائن DragEventArgs إلى دالة MapDrop الخاصة بنا. يعرض هذا الكائن البيانات المرتبطة بالكائن الذي تم إسقاطه (من خلال خاصية البيانات) ، بالإضافة إلى حالة مفاتيح shift و cntrl و alt. سنستخدم هذا الكائن للحصول على معلومات حول الملف الذي تم إسقاطه.

توفر مجموعة System.IO فئة FileInfo ، والتي ستساعدنا في التعامل مع المعلومات التي يسقطها المستخدم. سنلقي البيانات التي تم إسقاطها على الخريطة إلى مجموعة من كائنات FileInfo. سنتأكد بعد ذلك من أن الكائن الذي تم إسقاطه ليس فارغًا وأنه يحتوي على ملف واحد.

  • في دالة MapDrop في MyBehavior.cs ، أضف التعليمات البرمجية التالية للتأكد من قيام المستخدم بإسقاط ملف واحد بالضبط.

ملاحظة: طريقة IDataObject: GetData تسمح لك بالحصول على البيانات بتنسيق محدد ، إذا تم توفير أكثر من تنسيق. في الوقت الحالي ، سنحتاج إلى وضع بعض الافتراضات حول بنية المعلومات في الملف النصي الذي تم إسقاطه. لنفترض ما يلي: 1) يحتوي السطر الأول من الملف على أسماء الحقول ، 2) ستكون الإحداثيات دائمًا بتنسيق درجة عشرية ، 3) يتم فصل القيم دائمًا بفاصلات ، و 4) سيحتوي أول حقلين على خط الطول (س) وخط العرض (ص) قيم على التوالي.

  • أضف ما يلي استخدام عبارات في الجزء العلوي من الوحدة النمطية MyBehavior.cs. تحتوي هذه التجميعات على فئات مطلوبة لمعالجة إدخال الإحداثيات ونقاط الرسم على الخريطة.
  • في الجزء السفلي من الكود الموجود في دالة MapDrop ، قم بتعريف متغير StreamReader وابدأ كتلة try / catch / final. في ال قبض على جزء من الكتلة ، وإظهار رسالة خطأ ، وفي أخيرا جزء من الكتلة ، تأكد من إغلاق الملف ، كما هو موضح أدناه.
  • في الجزء التجريبي من الكتلة ، أضف الكود أدناه للإعلان عن بعض المتغيرات اللازمة لقراءة الملف ولعرض النقاط.
  • افتح الملف للقراءة.
  • أضف في حين حظر لقراءة جميع أسطر الملف الذي تم إسقاطه.

StreamReader :: ReadLine يُستخدم لقراءة السطر الحالي من الملف (بدءًا من الأعلى إلى الأسفل). ستعود الخاصية StreamReader :: EndOfStream خاطئة حتى يتم الوصول إلى نهاية الملف. سنتعقب موضع الخط داخل الملف باستخدام امتداد رقم السطر عامل. سيسمح لنا هذا بالإبلاغ عن رقم السطر الدقيق للملف في حالة مواجهة خطأ أثناء تحليل قيم الإحداثيات.

  • في مخاطرة جعل المؤخرة منك ومن أنا ، نفترض أن السطر الأول من الملف سيصف أسماء الحقول. أضف الكود أدناه (داخل ملف في حين loop ، بعد السطر الذي يزيد من رقم السطر متغير) لتخطي السطر الأول من الملف.
  • نفترض أيضًا أن قيم الإحداثيات مفصولة بفاصلات وأن أول قيمتين في السطر هما إحداثيات x و y. بناءً على هذه الافتراضات ، يمكننا إضافة الكود أدناه لقراءة إحداثيات السطر الحالي.

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

تحمل معي ، نحن في المنزل الممتد! كل ما نحتاجه الآن هو إنشاء نقطة من زوج الإحداثيات وإضافتها إلى طبقة الرسوم. أوه ، ونحتاج إلى إضافة طبقة الرسوم إلى الخريطة. أوه نعم ، نحتاج أيضًا إلى التأكد من عرض النقاط على Web Mercator. على أي حال ... نحن على وشك الانتهاء!

  • أضف التعليمات البرمجية لإنشاء MapPoint من زوج الإحداثيات الذي تم تحليله من الملف. نظرًا لأنه من المفترض أن تكون الإحداثيات درجات عشرية ، فسنقدم للنقطة مرجعًا مكانيًا WGS 1984.
  • استخدم ال ويب ميركاتور لإسقاط النقطة الجغرافية على Web Mercator.
  • قم بإنشاء كائن رسومي جديد لعرض النقطة ، وإضافته إلى GraphicsLayer الذي تم إنشاؤه مسبقًا.
  • أخيرًا ، أضف طبقة الرسومات إلى الخريطة.

نحن الآن جاهزون لتجربته!

  • قم بإنشاء ملف نصي للإحداثيات لاختبارها (تذكر افتراضاتنا حول بنية الملف!). إذا كنت كسولًا و / أو سئمت من الكتابة ، فيمكنك ببساطة نسخ المثال أدناه في ملف نصي.
  • قم بتشغيل التطبيق واسحب ملف الإحداثي الخاص بك إلى الخريطة. يجب أن ترى نقاطك تظهر مع رمز دبوس الدفع الافتراضي (لقد غيرت خريطة الأساس الخاصة بي إلى "Light Gray Canvas" من أجل رؤية النقاط بشكل أفضل).

إذا كان لديك متسع من الوقت ، فقد ترغب في محاولة تنفيذ بعض التحسينات التالية على سلوكنا الأساسي.


تصميم وتطوير تطبيقات برمجيات نظم المعلومات الجغرافية

تهدف الدورة إلى إدخال الهندسة المعمارية وبرمجة OO (Object Oriented) في Python ، وقدمت مراجعة شاملة للمبادئ الرئيسية لـ OO و COM (COMنماذج تطوير البرمجيات القائمة على المؤشرات. ستتناول الدورة على وجه التحديد تصميم وتنفيذ التطبيقات الجغرافية ومهام أتمتة المعالجة الجغرافية ، في سياق منصة نظم المعلومات الجغرافية المملوكة ArcGIS & trade 9.x e 10.

يمكن برمجة ArcGIS باللغات القياسية والمتقدمة مثل Visual C ++ & trade و Java & trade ، مما يوفر وصولاً كاملاً إلى وظائف النظام الأساسي الأصلي من خلال مكتبة المكونات ArcObjects & trade. من ناحية أخرى ، تم دمج Python بالكامل الآن في إصدار ArcGIS 10. ArcPy ، هو خيار بسيط وفعال ومتعدد الأنظمة الأساسية للنماذج الأولية السريعة وتطوير البرامج النصية ، ومعالجة مهام الإدارة والتحليل الجغرافيين. يمكن دمج الأدوات المكانية في Model Builder بسهولة في تطبيقات Python ، وأيضًا من خارج ArcGIS ، بينما يمكن تصدير نماذج البيانات المكانية لـ Model Builder إلى Python أيضًا ودمجها في إطار عمل تطبيقات جغرافية أكثر تعقيدًا.

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

برنامج

ستغطي الدورة ، التي تعتمد نهجًا نظريًا / عمليًا ، الموضوعات التالية:

  • نموذج البرمجة الشيئية (OO): من التحلل الوظيفي والمشاكل ذات الصلة بالنمطية والتماسك والاقتران في نماذج البرمجة التقليدية ، إلى نموذج OO.
  • مقدمة لمفاهيم OO الرئيسية وتنفيذها: الفئة ، تعدد الأشكال ، المنشئات والمدمرين ، الحالة والسلوك (الخصائص والوظائف) ، الكائن (إنشاء مثيل للفئة) ، المجموعات والتفاعل بين الكائنات.
  • ركزت الجلسات العملية على التحقيق في مفاهيم OO ، من خلال تنفيذ برامج بسيطة.
  • تصميم البرامج لتطبيقات OO: هندسة البرمجيات و UML (لغة النمذجة الموحدة) ، والمبادئ ، والرسوم البيانية الرئيسية (حالة الاستخدام ، والفئة ، والنشاط الإلكتروني للولاية) وتقنيات تحديد الفصول والعلاقات (CRC ، Class-Responsibility-Collaborator).
  • ركزت الجلسات العملية على هندسة البرمجيات ودورها في تصميم تطبيقات OO.
  • مقدمة إلى Python: محرر IDLE ، وأساسيات اللغة ، بما في ذلك المتغيرات ، والعوامل الرياضية والأولويات ، والتعليقات ، والمسافة البادئة ، والشرطية - if ، elif ، else - والتكرارية - while ، for - الإنشاءات والوظائف والمعلمات وقيم الإرجاع ، المجموعات والقوائم والقواميس والفئات (الإنشاء ، إنشاء مثيل للكائنات ، الميراث) ، الوحدات النمطية ، إدخال / إخراج الملف ، معالجة الأخطاء والاستثناءات ، التنفيذ وتصحيح الأخطاء (طباعة ، محاولة..إستثناء)
  • ركزت الجلسات العملية على أسس لغة برمجة Python وتطوير تطبيقات OO
  • المعالجة الجغرافية في ArcGIS. التعاريف والنماذج الجغرافية والكتابة النصية في سياق المعالجة الجيولوجية والهندسة المعمارية ومنشئ النماذج وتنفيذ البرامج النصية. نموذج البرمجة وكائن المعالج الجغرافي وتاريخه.
  • كيفية استخدام Python في ArcGIS: ArcPy والإعدادات البيئية وأدوات المعالجة الجغرافية وصناديق الأدوات وتنفيذ المهام الأساسية (التفاعل مع الطبقات وبناء الخرائط وتصديرها وإعداد الأنظمة المرجعية). قوائم بيانات GIS ، استخدام المؤشرات لتحديد وتحرير وإضافة سجلات جديدة لكل من فئات المعالم والكائنات ، وإنشاء أدوات مخصصة للتكامل في ArcToolbox.
  • ركزت الجلسات العملية على تصميم وتطوير تطبيقات Python لإدارة البيانات الجغرافية والمعالجة الجغرافية في ArcGIS.

مشروع GIScience

تعد الدورة جزءًا من مشروع تعليمي أوسع في GIScience و GIS ، والتطبيقات وتطوير المزج الجغرافي ، والتطبيقات البيئية. مدعومًا بملفات مهنية وأكاديمية رفيعة المستوى ، يتضمن المشروع الدورات التالية:

  • مقدمة في نظم المعلومات الجغرافية: مبدأ وتقنيات تطوير التطبيقات والتصور والتحليل المكاني
  • تصميم وتطوير تطبيقات برمجيات نظم المعلومات الجغرافية: النموذج الموجه للكائنات ، وهندسة البرمجيات ، وبرمجة بايثون ودورها في المعالجة الجيولوجية في ArcGIS
  • تصميم وتطويرتطبيقات الويب: دورة حول النظرية والتطبيق في تصميم وتطوير تطبيقات المزج GeoWeb 2.0 ، ودمج خرائط Google وخدمات الويب OpenLayer وقاعدة بيانات PostgreSQL / PostGIS المكانية والزمانية
  • تصميم وتطوير تطبيقات برمجيات نظم المعلومات الجغرافية: هندسة البرمجيات ونماذج OO والمكونات والبرمجة في VBA / ArcObjects for ArcGIS 8.x / 9
  • برمجة جافا الموجهة للكائنات لتطوير تطبيقات نظم المعلومات الجغرافية: منظور مفتوح المصدر للحلول المستقلة والويب
  • مقدمة عملية لقواعد البيانات وقواعد البيانات الجغرافية: دورة أساسية مكونة من وحدتين مع أمثلة في MySql و PostgreSQL / PostGIS و Oracle XE و ArcGIS / MsAccess لتصميم وتطوير قواعد البيانات العلائقية (I) والمكانية (II)
  • الأعمال الجغرافية و Geodemographics أمبير
  • تطبيقات خرائط جوجل
  • إدارة المشاريع البيئية
  • تدفق المياه الجوفية التطبيقية والنمذجة الرياضية: إدارة المياه الجوفية على المستوى الإقليمي لتقييم سياسات إمدادات المياه وعلى المستوى المحلي للمعالجة البيئية للمواقع الملوثة

برمجة

Python و QuantumGIS و ESRI ArcGIS

لمن هذا؟

تستهدف الدورة التدريبية العاملين المحترفين في القطاع العام والباحثين الشباب المهتمين بتخصيص مهام ArcGIS باستخدام Python.

الموقع والتواريخ

ستعقد الدورة في مركز التعليم البيئي Casa Archilei ، الواقع في Fano (PU) ويمكن الوصول إليه بسهولة من روابط النقل الرئيسية. مدة الدورة 48 ساعة ، مع 8 ساعات من الدروس 8-9-29-30 مايو و 12-13 يونيو 2015


نشر نصوص Python كخدمات معالجة جغرافية: أفضل الممارسات

لماذا بايثون بدلاً من النماذج؟

إذا كنت تنشر نماذج ModelBuilder الخاصة بك كخدمات معالجة جغرافية (GP إضافية) ، فمن المحتمل أنك أدركت أنها قد تكون مرهقة للغاية. إذا لم تنتقل & # 8217t إلى Python ، أعتقد أنه يجب عليك فعلاً ذلك. إن تأليف نصوص Python له مزايا جدية على نماذج التأليف في سياق نشر خدمات GP. هذا لأنه أثناء عملية النشر ، سيقوم ArcGIS Server بتحويل البيانات وأي شيء قد يكون مطلوبًا للتغيير إلى متغيرات وقد يؤدي ذلك إلى تعطل النموذج إذا كنت & # 8217t اتبعت الإرشادات الخاصة بتأليف خدمات GP. كانت القاعدة الأساسية بالنسبة لي أنه إذا كان هناك أكثر من 10 كائنات في النموذج ، فهذا هو الوقت المناسب للتبديل إلى Python. شيء آخر هو أنه يمكنك بسهولة إجراء تعديلات في كود Python دون إعادة النشر على النقيض من ذلك ، فأنت بحاجة إلى إعادة نشر النموذج في كل مرة تريد إصدار إصدار محدث من خدمة GP. أخيرًا ، نظرًا لأنك لا تحتاج & # 8217t إلى إعادة تشغيل خدمة GP عند تحديث ملف Python (على عكس إعادة نشر النموذج الذي يتطلب إعادة تشغيل الخدمة) ، فلا يوجد وقت تعطل للخدمة ولن يلاحظ المستخدمون أي شيء.

ماذا يحدث بعد النشر؟

& # 8217s نلقي نظرة على ما يجري تحت الغطاء. لقد قمت بتشغيل أداة البرنامج النصي في ArcMap ونشرت النتيجة كخدمة. يمكنك الآن العثور على خدمتك وجميع البيانات المصاحبة داخل آركجيسيرفير مجلد في مكان ما على محرك الأقراص الخاص بك. سيكون المسار: C: arcgisserver الدلائل arcgissystem arcgisinput ٪ GPServiceName٪ .GPServer

ستجد مجموعة من الملفات داخل المجلد. دعونا نفحص بعضًا منهم:

  • serviceconfiguration.json & # 8211 يقدم نظرة عامة على جميع خصائص الخدمة بما في ذلك نوع التنفيذ والقدرات الممكنة ودليل الإخراج والعديد من الخصائص الأخرى. هنا سترى جميع الإعدادات التي تراها عادة في نافذة محرر الخدمة.
  • ملف manifest.xml و البيان. json & # 8211 نظرة عامة على إعدادات النظام التي تم استخدامها أثناء نشر الخدمة. هذه ليست الملفات التي عادة ما ترغب في فحصها.

يوجد داخل المجلد esriinfo / metadata ملف باسم metadata.xml وهو مفيد حقًا لأنه يمكنك معرفة تاريخ نشر الخدمة. علامتان يجب أن تنظر إليهما هما:

نظرًا لعدم عرض هذه المعلومات من واجهة المستخدم الرسومية في ArcGIS Desktop أو ArcGIS Server Manager ، فهذه هي الطريقة الوحيدة لمعرفة وقت إنشاء الخدمة. قد تكون هذه المعلومات مفيدة للغاية عندما لا تكون متأكدًا من إصدارات الإصدار.

داخل مستخرج / v101 مجلد ، ستجد ملف النتيجة وصندوق الأدوات الذي عملت معه عند نشر خدمة GP. ستجد هنا أيضًا مجلدًا باسم المجلد الذي تم تخزين ملف Python فيه والذي يحتوي على ملف Python المصدر.

أفضل الممارسات لتنظيم كود وملفات بايثون؟

& # 8217s ننظر داخل ملف بايثون. ربما لاحظت أنه عند نشر بعض المتغيرات التي أعلنتها & # 8217 تمت إعادة تسميتها g_ESRI_variable_٪ id٪. قاعدة الإبهام هي أنه لا يجب عليك & # 8217t استخدام السلاسل فعليًا ، يمكنك تحويل المسارات إلى مجموعات البيانات والأسماء إلى متغيرات. بالطبع لا يتعين عليك & # 8217t القيام بذلك نظرًا لأن Esri ستقوم بتحديث تلك المتغيرات المضمنة ، ولكن من الصعب جدًا إعادة البناء باستخدام تلك الأسماء المتغيرة ، لذلك من الأفضل تنظيم الكود الخاص بك بشكل صحيح من البداية.

في حالة تشغيل أداة البرنامج النصي في ArcGIS ، توجد قاعدة البيانات الجغرافية المؤقتة في C: Users ٪ user٪ AppData Local Temp scratch.gdb. ومع ذلك ، بعد نشر الأداة ، ستحصل الخدمة على قاعدة بيانات جغرافية خدش جديدة. إذا كنت بحاجة إلى فحص البيانات الوسيطة التي تم إنشاؤها ، فانتقل إلى قاعدة البيانات الجغرافية المؤقتة (يمكن استرداد المسار باستخدام arcpy.env.scratchGDB) والتي ستكون قاعدة بيانات جغرافية جديدة للملف في كل تشغيل لخدمة GP بالتدوين التالي: ج: arcgisserver الدلائل arcgisjobs ٪ service٪ _gpserver ٪ jobid٪ scratch scratch.gdb.

ضع في اعتبارك أن خدمة GP ستستخدم دائمًا مجلد وظائف الخادم المحلي الخاص بها لكتابة البيانات الوسيطة ولا يمكن تغيير هذا السلوك. لكن كتابة الخدمة في مساحة العمل المؤقتة هي في الواقع أكثر أمانًا من الكتابة إلى موقع معين على القرص. هذا لأنه لا توجد فرصة لمحاولة مثيلات خدمة GP متعددة الكتابة إلى نفس الموقع في نفس الوقت مما قد يؤدي إلى حدوث مشكلات في القفل المطلق والتزامن. تذكر أنه سيتم تعيين كل وظيفة GP مقدمة إلى مجلد خدش فريد جديد وقاعدة بيانات جغرافية في مجلد arcgisjobs.

تأكد من أنك لا تستخدم مساحة عمل arcpy.env في التعليمات البرمجية الخاصة بك ، تعلن دائمًا عن متغير مسار وتعيينه ليكون المجلد أو اتصال قاعدة البيانات الجغرافية. بالنسبة لمسار مجموعات البيانات ، استخدم os.path.join () بدلاً من ربط السلاسل. لأسباب تتعلق بالأداء ، استخدم في الذاكرة مساحة عمل للبيانات الوسيطة بالتدوين التالي:

يمكنك الاستفادة من استخدام في الذاكرة مساحة العمل ، ولكن لأغراض استكشاف الأخطاء وإصلاحها ، قد يكون من الأفضل كتابة شيء ما على القرص لفحصه لاحقًا. في هذه الحالة ، قد يكون من المفيد إنشاء متغير يسمى شيئًا مثل gpTempPlace والذي يمكنك تغييره ليكون إما & # 8220في الذاكرة& # 8221 أو قاعدة بيانات جغرافية لملف محلي بناءً على ما إذا كنت تقوم بتشغيل تعليمات برمجية نظيفة في الإنتاج أو استكشاف أخطاء الخدمة وإصلاحها في بيئة التدريج.

تأكد من عدم استخدام نفس الاسم للمتغير واسم فئة / حقل الميزة. يؤدي هذا أحيانًا إلى نتائج غير متوقعة عند تشغيل الخدمة. قد يكون من المفيد إضافة "_fc"في النهاية لمتغير فئة الميزة و"_مجال"لمتغير المجال. بهذه الطريقة ، ستتمكن أيضًا من تمييزها بسهولة أكبر. ينطبق الأمر نفسه على فئة المعالم وطبقة المعالم (التي تم إنشاؤها باستخدام أداة Make Feature Layer GP).

تذكر أنه يمكنك ضبط مستوى التسجيل في ArcGIS Server (في Manger) أو خدمة GP فقط (يتم ذلك في نافذة محرر الخدمة) لأغراض استكشاف الأخطاء وإصلاحها. غالبًا ما يكون من المفيد تعيين إعداد مستوى الرسالة على مستوى المعلومات قبل نشر خدمة GP في الإنتاج لأن هذا سيعطيك المعلومات التفصيلية عن الخطأ الذي حدث بالضبط عند تشغيل خدمة GP. يمكنك الوصول إلى هذه المعلومات إما من نافذة النتائج في ArcMap أو من سجلات ArcGIS Server في المدير.

كيف أقوم بتحديث الخدمة المنشورة؟

يجب أن تذهب كلمة خاصة لأولئك المستخدمين الذين يحتاجون إلى نشر خدمات GP كثيرًا أثناء إجراء تغييرات في الكود. من المهم أن نفهم أنه بعد نشر خدمة GP ، فإن ملف شفرة Python المنسوخ وصندوق الأدوات لا يحتفظان بأي اتصال بملف Python المصدر وصندوق الأدوات المصدر الذي قمت بتأليفه. هذا يعني أنه بعد إجراء تعديلات على أداة البرنامج النصي ، تحتاج إلى دفع هذه التغييرات إلى الخدمة المنشورة على الخادم.

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

على الرغم من أنه يمكنك أتمتة سير عمل نشر الخدمة باستخدام Python ، لا يزال الأمر يستغرق وقتًا لنقل مربع الأدوات وملفات تعليمات Python البرمجية. لذلك ، يمكنك توفير الكثير من الوقت من خلال إيجاد طريقة لاستبدال كود Python في ملف كود Python المنشور. لتحديث ملف كود Python ، لديك حقًا خياران فقط & # 8211 يمكنك إما نسخ واستبدال الملف المنشور بالملف المصدر المحدث أو نسخ / لصق الكود المصدري. قد تنجح هذه الطريقة إذا كان لديك برنامج نصي صغير من لغة Python وجميع المسارات إلى البيانات الموجودة على جهازك وعلى الخادم متشابهة. يمكن أن يكون هذا حلاً معقولاً عندما يكون لديك سطح مكتب وخادم على نفس الجهاز. إذا كان لديك ملف تكوين حيث يحصل ملف شفرة مصدر Python على جميع المسارات وأسماء مجموعة البيانات ، يمكنك أيضًا استبدال ملف Python المنشور بأمان. ومع ذلك ، لا يزال هذا شيء إضافي يجب القيام به.

أفضل ممارسة جئت إليها أثناء العمل لمدة عامين في خدمات GP هي تقسيم ملفات الكود والأداة نفسها. دعني أشرح.

كيف أفصل منطق صندوق الأدوات وكود بايثون؟

قم بإنشاء ملف Python (نص متصل) والذي سيحتوي على جميع ملفات يستورد عبارات لوحدات Python النمطية وملفاتك. من خلال إلحاق المسار بملفات Python الخاصة بك ، ستتمكن من استيراد ملفات Python التي تعمل عليها ، وهذا مفيد للغاية عندما لا تتكون خدمة GP الخاصة بك من ملف واحد فحسب ، بل من وحدات متعددة.

يجب أن يشتمل هذا الملف أيضًا على جميع المعلمات التي يتم عرضها في أداة البرنامج النصي.

ثم تحدد الوظيفة الرئيسية التي سيتم تنفيذها عند تشغيل خدمة GP. يمكنك استدعاء الوظائف المحددة داخل الملفات التي قمت باستيرادها.

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

قم بإنشاء أداة نصية من ملف Python المتصل هذا لتحديد المعلمات وأنواع بياناتها. بعد نشر الأداة كخدمة GP ، يمكنك العمل مع ملفات Python التي ستحتوي فقط على الكود الذي يؤدي المهمة بالفعل.

بعد إجراء التغييرات وحفظها في الكود ، لا تتردد في تشغيل خدمة GP مباشرة & # 8211 سيقوم ملف Python المتصل (المنشور كخدمة GP) باستيراد ملف الكود 1 في المجلد الذي حددته وتشغيل الكود. ليست هناك حاجة لإعادة تشغيل خدمة GP أو إعادة استيراد وحدة التحديث الخاصة بك.


شاهد الفيديو: 9 ArcObjects Cursores (شهر اكتوبر 2021).