Veel

Kuidas saada kõiki funktsioone praeguses ulatuses

Kuidas saada kõiki funktsioone praeguses ulatuses


Mulle meeldib lisada oma MapControl/PageLayoutControl iga kaardifunktsiooni igale funktsioonile tekstiteavet. Teksti lisamine pole probleem, kuid ma ei leidnud võimalust funktsioonide hankimiseks.

Kas on olemas võimalus saada kõik kihi funktsioonid, mis on praegusel kaardialal?


Kas olete vaadanud:

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

Ümbriku seadmine = aktiivvaate nähtavatele piiridele. Seejärel peate määratlema ruumilise filtri, leidma konkreetse tunnusklassi ja seadistama selle funktsioonide kursoriks, et haarata kõiki funktsioone.


Tänu artwork21 -le saaksin selle lahendada järgmiselt:

IMap kaart = this._mapControl.ActiveView.FocusMap; IEnvelope ümbrik = _mapControl.ActiveView.ScreenDisplay.DisplayTransformation.VisibleBounds; IGeoFeatureLayer featLayer = myLayer kui IGeoFeatureLayer; if (featLayer! = null) {IFeatureClass featureClass = featLayer.FeatureClass; System.String shapeFieldName = featureClass.ShapeFieldName; // Loo uus ruumifilter ja kasuta uut ümbrikku geomeetriana ISpatialFilter spatialFilter = new SpatialFilterClass (); spatialFilter.Geometry = ümbrik; spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelEnvelopeIntersects; spatialFilter.set_OutputSpatialReference (shapeFieldName, map.SpatialReference); spatialFilter.GeometryField = kujuFieldName; // Kas otsida IFeatureCursor featureCursor = featureClass.Search (spatialFilter, false); return featureCursor;