0
我想創建一個基於集合的圖例,下面的代碼進入Shapefile並提取特定的列數據,然後我們爲數據分配一個顏色。這是我在控制器中創建的,我想知道是否可以創建基於這個集合的HTML圖例,我想這樣做的方式是創建與我們想要傳說的每個圖層的單選按鈕。我知道這可能是模糊的,但我真的不知道如何描述它。動態創建一個基於集合的顏色圖例
任何建議,將不勝感激
private Collection<ValueItem> colorSelect(Collection<Feature> allFeatures, string layercode,Collection<ValueItem> valueItems)
{
List<string> values = new List<string>();
foreach (Feature f in allFeatures)
{
if (f.ColumnValues.ContainsKey(layercode))
{
if (!values.Contains(f.ColumnValues[layercode].ToString()))
{
values.Add(f.ColumnValues[layercode].ToString());
}
}
}
if (values.Count > 0)
{
Random randomGen = new Random();
int count = 0;
foreach (string esnCode in values)
{
//int count = 0;
if (count == 0)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Green, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 1)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Pink, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 2)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Blue, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 3)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Yellow, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 4)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Violet, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 5)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Red, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 6)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Aqua, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 7)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Black, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 8)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Brown, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 9)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Coral, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
if (count == 10)
{
ValueItem item = new ValueItem(esnCode, AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.DarkKhaki, GeoColor.StandardColors.Black, 3));
valueItems.Add(item);
}
count++;
}
}
return (valueItems);
}
不好意思問,但你會如何用模型做這件事? – 2014-10-31 20:53:56
如果你有一個模型,那麼在控制器中,你應該像下面這樣將它傳遞給視圖:return View(myModelObject); 並且在頂部的視圖中,您應該指定視圖期望的類型,而不是ViewBag.colorList使用Model.ColorList,或者只是Model,如果Model是顏色列表本身:) – 2014-11-02 19:23:28