如果数据源是FeatureDataTable,如何在VectorLayer上应用SharpMap.VectorStyle主题?

问题描述 投票:0回答:1

当我使用ShapeFile作为矢量层的数据源时,我尝试了矢量层主题。但是,当我尝试使用自定义多边形数据实现同一目的时,它将无法正常工作。

下面是我使用的代码:

Dictionary<string, SharpMap.Styles.IStyle> styles = new Dictionary<string, SharpMap.Styles.IStyle>();
                styles.Clear();
                styles.Add("NONE", m_noneStyleDefault);
                foreach (ListViewItem tn in _arlv)
                {
                    DataRow _row = (DataRow)tn.Tag;
                    r = labelData.NewRow();
                    var wkbreader = new NetTopologySuite.IO.WKTReader();
                    var geom = wkbreader.Read(_row["ogr_geometry"].ToString());
                    r["FID"] = (Int32)_row["ogr_fid"];
                    r["NAME"] = _row["sovereignt"].ToString();
                    r["SOV_A3"] = _row["sov_a3"].ToString().Trim().ToUpper();
                    r["TYPE"] = _row["mytype"].ToString();
                    r.Geometry = geom;

                    labelData.Rows.Add(r);
                    styles.Add(_row["sov_a3"].ToString().Trim().ToUpper(), m_selectStyleDefault);
                }

                m_vlCountries.DataSource = new SharpMap.Data.Providers.GeometryProvider(labelData);
                //m_vlCountries.Style = m_selectStyleDefault;

                m_vlCountries.Theme = new SharpMap.Rendering.Thematics.UniqueValuesTheme<string>("SOV_A3", styles, m_noneStyleDefault);
c# gis sharpmap
1个回答
0
投票

您需要使用SharpMap.Data.Providers.GeometryFeatureProvider而不是普通的GeometryProvider

© www.soinside.com 2019 - 2024. All rights reserved.