Več

Nastavitev polja v lastnostih simbola ArcMap z uporabo ArcObjects?


Programsko upodabljam funkcijski sloj v ArcMap, vendar ne morem nastaviti lastnosti Field v obrazcu lastnosti Symbology. Rezultat tega je, da ima sloj pravilne nastavitve upodabljanja / preloma / legende, vendar je upodabljanje na zaslonu napačno. Ko odprem zavihek Simbologija, polje ni nastavljeno. Ko izberem polje, se klasifikacija ponastavi. Polje fokusa je dejansko iz povezane tabele. Kakšen predlog? Spodaj je koda, ki jo imam za upodabljanje sloja.

Uporabljam ArcGIS 10.2.2; Windows 7; VS2010 Express. Funkcijski sloj je v datotečni zbirki geodatov skupaj s povezano tabelo.

To vprašanje sem postavil na forumih ESRI, vendar rešitve še ni, zato upam, da lahko nekdo tukaj pomaga.

javna void ClassifyLayer (glej IFeatureLayer pFL, ITable pTable) {IGeoFeatureLayer pGFLyr = (IGeoFeatureLayer) pFL; object dataValues; frekvence podatkov predmeta; ISimpleLineSymbol pLineFillSymbol; IClassBreaksUIProperties pClassBreaksUIProperties; IFeatureRenderer ifr = pGFLyr.Renderer; IClassBreaksRenderer pClassBreaksRenderer = (IClassBreaksRenderer) ifr; IDataSampling ds = (IDataSampling) pClassBreaksRenderer; ITableHistogram pTH = (ITableHistogram) new TableHistogram (); pTH.Field = "IDX"; pTH.Table = pTable; ds.MaxSampleSize = pTable.RowCount (null) + 1 ;; pTH.Sampling = ds; IHistogram pHist = (IHistogram) pTH; pHist.GetHistogram (ven dataValues, out dataFrequences); IClassify pClassify = new QuantileClass (); dvojni [] razredi; pClassify.SetHistogramData (dataValues, dataFrequencies); pClassify.Classify (10); razredi = (dvojni []) pClassify.ClassBreaks; pClassBreaksRenderer.BreakCount = classes.Length - 1; pClassBreaksRenderer.Field = pTH.Field; pClassBreaksRenderer.MinimumBreak = razredi [0]; // Spectrum-Full Bright IMultiPartColorRamp pMultiColourRamp = GetSpectrumRamp (10); bool rampcreated = false; IEnumColors pColors = pMultiColourRamp.Colors; za (int i = 0; i 

Na to so odgovorili na forumu ESRI, vendar sem mislil, da ga ponovim tukaj. To je težava z združeno tabelo. Ne glede na določitev polja z imenom sloja ali tabele simbologija polja ne najde. Takoj, ko so združitve odstranjene (in če je polje fokusa v upodobljeni plasti), se upodabljanje zgodi pravilno. Torej, da se tega izognem, se moram zdaj sproti pridružiti mizi, narediti izračune in nato odstraniti spoj, preden samodejno upodobim plast. Na koncu izvirna koda upodabljanja deluje v redu in mi ni treba uporabljati IFeatureRendererUpdate. Hvala za pomoč. Bom preučil, kako obvestiti podporo o težavi.