/// <summary> /// Convert SubscriberRadioInfo to XML Places /// </summary> /// <param name="sm"></param> /// <returns></returns> private XElement CreateXMLSubscriberPlaces(SubscriberRadioInfo sm) { XElement Place = new XElement("Place"); Place.SetAttributeValue("place_id", _subscribers.IndexOf(sm)); Place.SetAttributeValue("user_hide", "0"); Place.SetAttributeValue("name", sm.Name); Place.SetAttributeValue("longitude", sm.Longitude); Place.SetAttributeValue("shape", "circle"); Place.SetAttributeValue("latitude", sm.Latitude); Place.SetAttributeValue("height_asl", "None"); Place.SetAttributeValue("maximum_height", _settings.SmHeight.ToString()); return(Place); }
/// <summary> /// Take a subscriberRadioInfo and return a nice SmPlacemark with all necesary subscriber information and location information. /// </summary> /// <param name="sm"></param> private Placemark generateSmPlacemark(SubscriberRadioInfo sm) { var smPlacemark = new Placemark() { Name = sm.Name, Id = sm.Name, Geometry = new Point() { Coordinate = new Vector( latitude: (double)sm.Latitude, longitude: (double)sm.Longitude) } }; smPlacemark.Description = CreateDescriptionFromObject(sm); // Apply icon to SM based on Signal Level if (sm.ApAPL <= settings.Icons["Bad"].SignalLevel || sm.SmAPL <= settings.Icons["Bad"].SignalLevel) { smPlacemark.StyleUrl = new Uri($"#" + nameof(redIcon), UriKind.Relative); smPlacemark.Visibility = settings.Icons["Bad"].Visibility; } else if (sm.ApAPL <= settings.Icons["Poor"].SignalLevel || sm.SmAPL <= settings.Icons["Poor"].SignalLevel) { smPlacemark.StyleUrl = new Uri($"#" + nameof(yellowIcon), UriKind.Relative); smPlacemark.Visibility = settings.Icons["Poor"].Visibility; } else if (sm.ApAPL <= settings.Icons["Good"].SignalLevel || sm.SmAPL <= settings.Icons["Good"].SignalLevel) { smPlacemark.StyleUrl = new Uri($"#" + nameof(greenIcon), UriKind.Relative); smPlacemark.Visibility = settings.Icons["Good"].Visibility; } else { smPlacemark.StyleUrl = new Uri($"#" + nameof(whiteIcon), UriKind.Relative); smPlacemark.Visibility = settings.Icons["Unknown"].Visibility; } return(smPlacemark); }