我正在开发一个构建KML文件的项目,获取GPS坐标并为每个点创建地标...... 然后另一个功能是如果某些事情是真的改变图片风格。
更详细:
我有一个字符串列表,其中包含从gridview存储的值。该列表包含具有日期的元素和空的元素。然后我必须检查一个非空的 - 设置picture1,否则设置defaultPic。
以下是代码:
for (int i = 0; i < latList.Count; i++) //looping through all the coordinates
{
kml.WriteStartElement("Placemark");
kml.WriteElementString("name", "Point " + GridView1.Rows[i].Cells[0].Text);
if (datesList.Any(dates => !String.IsNullOrEmpty(dates) && dates != " ") )
{
kml.WriteElementString("styleUrl", "#randomColorIcon");
}
else
{
kml.WriteElementString("styleUrl", "#randomColorIcon2");
}
我得到了包含所有相同图片的KML文件(“randomColorIcon”)。由于我在gridview中的日期列中有3个值(分别在datesList中有3个不是空值),我需要得到3个不同图片的点,所有其他图片都有默认值...
所以if语句有问题,但我现在还没有真正理解。对不起,如果有什么不清楚,我会尝试解决它..
非常欢迎任何指示或建议。希望你能理解我对这一切的意义和帮助...... :(
所需的KML文件(数据库中有3个点有日期,所有其他点都有相同的图片)
希望它是可见的......
谢谢你们
答案 0 :(得分:2)
只要集合中的日期不为空且不等于空格(“”),您的if语句就会返回true。因此,如果您至少有一个有效日期值,则将返回#randomColorIcon。
我会用这个:
datesList.ForEach(d =>
kml.WriteElementString("styleUrl", (!String.IsNullOrEmpty(d) && d != " ") ? "#randomColorIcon" : "#randomColorIcon2");
答案 1 :(得分:2)
试试这个
kml.WriteStartElement("Placemark");
kml.WriteElementString("name", "Point " + GridView1.Rows[i].Cells[0].Text);
foreach(var dates in datesList)
{
if (!String.IsNullOrWhiteSpace(dates)) )
{
kml.WriteElementString("styleUrl", "#randomColorIcon");
}
else
{
kml.WriteElementString("styleUrl", "#randomColorIcon2");
}
}