private object[] GetCoordinates(Question Region, List <StandardVocabItem> vmsRegions) { var result = new List <object>(); var vmsRegion = vmsRegions.FirstOrDefault(v => v.Id.ToString() == Region.Value); if (vmsRegion != null) { var simpleWKT = vmsRegion.AdditionalData.FirstOrDefault(ad => ad.Key == "SimpleWKT"); if (!string.IsNullOrEmpty(simpleWKT.Value)) { //Extract polygon data var WKTPolygons = WKTConvert.GetPolygons(simpleWKT.Value); foreach (var poly in WKTPolygons) { var polygon = new List <object>(); //Convert points foreach (var point in poly.WKTPoints) { var polyPoint = new double[] { point.Lat, point.Lng }; polygon.Add(polyPoint); } //Add result if relevant if (polygon.Count > 0) { result.Add(polygon); } } } } return(result.ToArray()); }
private string GetWKTType(Question Region, List <StandardVocabItem> vmsRegions) { string type = "Polygon"; var vmsRegion = vmsRegions.FirstOrDefault(v => v.Id.ToString() == Region.Value); if (vmsRegion != null) { var simpleWKT = vmsRegion.AdditionalData.FirstOrDefault(ad => ad.Key == "SimpleWKT"); if (!string.IsNullOrEmpty(simpleWKT.Value)) { type = WKTConvert.GetWKTType(simpleWKT.Value).ToString(); } } return(type); }