أكثر

إنشاء خطوط متعددة متعامدة بطول محدد والتي تحتفظ بسمات الخطوط المتعددة الأصلية باستخدام ArcObjects و VBA؟

إنشاء خطوط متعددة متعامدة بطول محدد والتي تحتفظ بسمات الخطوط المتعددة الأصلية باستخدام ArcObjects و VBA؟


أنا أستخدم ArcGIS 9.2 وأحاول بشدة إنشاء خطوط متعددة عمودية على الخطوط المتعددة الموجودة لدي. أرغب في عبور الخطوط العمودية للخطوط الأصلية عند نقطة المنتصف وأريد أن تحافظ الخطوط العمودية على سمات الخطوط الأصلية وأخيراً أود أن أكون قادرًا على التحكم في المدة التي أريد أن تكون الخطوط العمودية عليها (على سبيل المثال) .50 مترا)

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

الاختبار الفرعي الصريح للخيار () محرر خافت كـ IEditor Set pEditor = Application.FindExtensionByName ("ESRI Object Editor") إذا كان pEditor.EditState <> esriStateEditing ثم MsgBox "ابدأ التحرير أولاً" الخروج من النهاية الفرعية إذا كان خافت pEL كـ IEditLayers قم بتعيين pEL = pEditor إذا pEL. Map.FeatureSelection pEnumFeat.Reset pEditor.StartOperation. الشكل = MakePerp (pFeat.Shape، _ GetLength (pFeat.Shape)) pNewFeat.Store End If Set pFeat = pEnumFeat.Next Loop pEditor.StopOperation "makeperps" Dim pAV As IActiveView Set pAV = pEditor.Map pAV.Refresh وظيفة النهاية الفرعية GetLength (pPolyline كـ IPolyline) كـ Double GetLength = pPolyline.Length End Function Function MakePerp (pBaseLine كـ IPolyline ، ByVal dLen As Double) كـ IPolyline Dim pPointColl كـ IPointCollection Set pPointColl = خط مضيف متعدد الخطوط جديد pPointColler pBaseLine.QueryNormal esriNoExtension، 0.5، True، dLen / 2 #، pPerpLine pPointColl.AddPoint pPerpLine.ToPoint pBaseLine.QueryNormal esriNoExtension، 0.5، True، dLen / -2 #، مجموعة الوظيفة perpLine.

ستحتاج إلى تعديل هذا الرمز لإنشاء ميزة.

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

لكل صف ، ستحدد هندسة العبور باستخدام الفرع الخاص بك وتقوم بإنشاء سجل جديد (في فئة ميزة معينة) ، ونسخ السمات.

تحقق من هذه الروابط:

http://edndoc.esri.com/arcobjects/9.1/ComponentHelp/esriGeoDatabase/IQueryFilter.htm

http://edndoc.esri.com/arcobjects/9.0/ComponentHelp/esriGeoDatabase/IRow.htm

http://resources.esri.com/help/9.3/ArcGISEngine/arcobjects/esriGeodatabase/IFeature.htm

http://edndoc.esri.com/arcobjects/9.1/ComponentHelp/esriGeoDatabase/ICursor.htm


شاهد الفيديو: Excel Addresses to Google Earth.kml file VBA macro instructions