Если заявление, которое проверяет, существует ли значение, а затем напишите тег KML - PullRequest
0 голосов
/ 21 декабря 2011

Я работаю над проектом, который создает файл KML, беря координаты GPS и создавая метки для каждой точки ... Затем еще одна функция - это изменение стиля изображения, если что-то верно.

Более подробно:

У меня есть список строк со значениями, хранящимися в виде таблицы.Список содержит как элементы с датами, так и пустые.Затем я должен проверить, что не пусто - установить 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 != "&nbsp;") )
  {
    kml.WriteElementString("styleUrl", "#randomColorIcon");
  }
  else
  {
    kml.WriteElementString("styleUrl", "#randomColorIcon2");
  }

Я получаю файл KML со всем тем же изображением ("randomColorIcon").Так как у меня есть 3 значения в столбце даты в виде сетки (3 не пустые значения в списке дат соответственно), мне нужно получить 3 балла с другим изображением, а все остальные с одним по умолчанию ...

SOс утверждением if что-то не так, но сейчас я не совсем понял.Извините, если что-то не понятно, я постараюсь это исправить ..

Любые указания или предложения приветствуются.Надеюсь, вы понимаете, что я имею в виду со всем этим и помогаете ... :(

Желаемый файл KML (в базе данных есть 3 точки, в которых есть даты, все остальные точки имеют ту же картинку)

Desired KML Надеюсь, это видно ...

Спасибо, ребята

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Попробуйте это

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");
  }
}
2 голосов
/ 21 декабря 2011

Ваш оператор if возвращает true, если дата в коллекции не равна нулю и не равна пустой ("") .. поэтому, если у вас есть хотя бы одно допустимое значение даты, вы будете возвращать # randomColorIcon.

Я бы использовал это:

datesList.ForEach(d =>
    kml.WriteElementString("styleUrl", (!String.IsNullOrEmpty(d) && d != "&nbsp;") ? "#randomColorIcon" : "#randomColorIcon2");
...