أكثر

كيفية الحصول على جميع الميزات في المدى الحالي

كيفية الحصول على جميع الميزات في المدى الحالي


أود إضافة معلومات نصية إلى كل معلم في نطاق الخريطة المعروض في MapControl / PageLayoutControl. لا تعد إضافة النص مشكلة ، لكنني لم أتمكن من العثور على طريقة حول كيفية الحصول على الميزات.

هل توجد طريقة للحصول على جميع المعالم في طبقة موجودة في نطاق الخريطة الحالي؟


هل اطلعت على:

Dim pEnv As IEnvelope pEnv = pAv.ScreenDisplay.DisplayTransformation.VisibleBounds

ضبط المغلف = للتنشيط معاينة الحدود المرئية. سيتعين عليك بعد ذلك تحديد مرشح مكاني ، والعثور على فئة الميزة المحددة ، وتعيين ذلك على مؤشر مميز للاستيلاء على جميع الميزات.


بفضل العمل الفني 21 يمكنني حل هذا على النحو التالي:

خريطة IMap = this._mapControl.ActiveView.FocusMap ؛ مغلف IEnvelope = _mapControl.ActiveView.ScreenDisplay.DisplayTransformation.VisibleBounds ؛ IGeoFeatureLayer featLayer = myLayer كـ IGeoFeatureLayer ؛ if (featLayer! = null) {IFeatureClass featureClass = featLayer.FeatureClass؛ System.String shapeFieldName = featureClass.ShapeFieldName ؛ // أنشئ مرشحًا مكانيًا جديدًا واستخدم المغلف الجديد باعتباره الهندسة ISpatialFilter spatialFilter = new SpatialFilterClass () ؛ spatialFilter.Geometry = مغلف ؛ spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelEnvelopeIntersects ، spatialFilter.set_OutputSpatialReference (shapeFieldName، map.SpatialReference) ؛ spatialFilter.GeometryField = shapeFieldName ، // قم بالبحث عن IFeatureCursor featureCursor = featureClass.Search (spatialFilter ، false) ؛ ميزة العودة