private static PoiData GetPoiData(string dir, PoiCategory category, PoiCountry country) { try { var filename = $"{dir}\\{GetFileName(category)}"; var xml = File.ReadAllText(filename); var listOfPoi = GpxFileParser.Parse(xml, category, country, Guid.NewGuid()); var count = listOfPoi.Count; //DateTime creation = File.GetCreationTime(filename); DateTime modificationDate = File.GetLastWriteTime(filename); var pd = new PoiData() { Category = category, DateCreated = modificationDate, PointCount = count, Url = $"PoiData/{country}/{GetFileName(category)}", Description = "", Id = GetGuid(country, category) }; return(pd); } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
private void OnCountrySelected(object sender, AdapterView.ItemSelectedEventArgs e) { var country = (_spinnerCountry.Adapter as CountryAdapter)[e.Position]; if (country.HasValue) { _country = country.Value; } }
public static PoiCountry?GetDefaultCountryByPhoneSettings() { var regionCode = RegionInfo.CurrentRegion; if (PoiCountry.TryParse <PoiCountry>(regionCode.ThreeLetterISORegionName, out var poiCountry)) { return(poiCountry); } return(null); }
private void OnCountrySelected(int position) { PoiCountry country = _countryAdapter[position]; _countryAdapter.Selection = country; var items = _downloadViewItems .Where(x => x.fromDatabase.Country == country) .OrderBy(x => x.fromDatabase.Category); MainThread.BeginInvokeOnMainThread(() => { _downloadItemAdapter.SetItems(items); }); }
static public PoiList Parse(string xml, PoiCategory category, PoiCountry country, Guid source, Action <int> OnStart = null, Action <int> OnProgress = null) { var lastNode = ""; try { var listOfPoi = new PoiList(); XmlDocument gpxDoc = new XmlDocument(); gpxDoc.LoadXml(xml); XmlNamespaceManager nsmgr = new XmlNamespaceManager(gpxDoc.NameTable); nsmgr.AddNamespace("x", "http://www.topografix.com/GPX/1/1"); nsmgr.AddNamespace("ogr", "http://osgeo.org/gdal"); XmlNodeList nl = gpxDoc.SelectNodes("/x:gpx/x:wpt ", nsmgr); OnStart?.Invoke(nl == null ? 0 : nl.Count); int i = 0; foreach (XmlElement xelement in nl) { OnProgress?.Invoke(i++); var lat = xelement.Attributes.GetNamedItem("lat").Value; var lon = xelement.Attributes.GetNamedItem("lon").Value; var nameElement = xelement["name"]; var name = nameElement == null ? "Unnamed" : nameElement.InnerText; var eleElement = xelement["ele"]; var ele = eleElement == null ? "0" : eleElement.InnerText; var wikidataElement = xelement["wikidata"]; string wikidata = wikidataElement == null ? "" : wikidataElement.InnerText; var wikipediaElement = xelement["wikipedia"]; string wikipedia = wikipediaElement == null ? "" : wikipediaElement.InnerText; Poi poi = new Poi { Name = name, Longitude = double.Parse(lon, CultureInfo.InvariantCulture), Latitude = double.Parse(lat, CultureInfo.InvariantCulture), Altitude = String.IsNullOrEmpty(ele) ? 0 : double.Parse(ele, CultureInfo.InvariantCulture), Category = category, Country = country, Source = source }; if (!String.IsNullOrEmpty(wikipedia)) { poi.Wikipedia = wikipedia; } if (!String.IsNullOrEmpty(wikidata)) { poi.Wikidata = wikidata; } listOfPoi.Add(poi); lastNode = name; } return(listOfPoi); } catch (Exception ex) { throw new Exception($"Error when parsing GPX file (last node:{lastNode})", ex); } }
public static int GetCountryIcon(PoiCountry country) { //Icons from https://www.countryflags.com/en/icons-overview/ switch (country) { case PoiCountry.AUT: return(Resource.Drawable.flag_of_Austria); case PoiCountry.CZE: return(Resource.Drawable.flag_of_CzechRepublic); case PoiCountry.FRA: return(Resource.Drawable.flag_of_France); case PoiCountry.DEU: return(Resource.Drawable.flag_of_Germany); case PoiCountry.HUN: return(Resource.Drawable.flag_of_Hungary); case PoiCountry.ITA: return(Resource.Drawable.flag_of_Italy); case PoiCountry.POL: return(Resource.Drawable.flag_of_Poland); case PoiCountry.ROU: return(Resource.Drawable.flag_of_Romania); case PoiCountry.SVK: return(Resource.Drawable.flag_of_Slovakia); case PoiCountry.SVN: return(Resource.Drawable.flag_of_Slovenia); case PoiCountry.ESP: return(Resource.Drawable.flag_of_Spain); case PoiCountry.CHE: return(Resource.Drawable.flag_of_Switzerland); case PoiCountry.BEL: return(Resource.Drawable.flag_of_Belgium); case PoiCountry.BIH: return(Resource.Drawable.flag_of_BosniaHerzegovina); case PoiCountry.HRV: return(Resource.Drawable.flag_of_Croatia); case PoiCountry.BGR: return(Resource.Drawable.flag_of_Bulgaria); case PoiCountry.DNK: return(Resource.Drawable.flag_of_Denmark); case PoiCountry.FIN: return(Resource.Drawable.flag_of_Finland); case PoiCountry.LIE: return(Resource.Drawable.flag_of_Liechtenstein); case PoiCountry.LUX: return(Resource.Drawable.flag_of_Luxembourg); case PoiCountry.NLD: return(Resource.Drawable.flag_of_Netherlands); case PoiCountry.NOR: return(Resource.Drawable.flag_of_Norway); case PoiCountry.ERB: return(Resource.Drawable.flag_of_Serbia); case PoiCountry.SWE: return(Resource.Drawable.flag_of_Sweden); case PoiCountry.GRC: return(Resource.Drawable.flag_of_Greece); case PoiCountry.UKR: return(Resource.Drawable.flag_of_Ukraine); case PoiCountry.BLR: return(Resource.Drawable.flag_of_Belarus); case PoiCountry.ALB: return(Resource.Drawable.flag_of_Albania); case PoiCountry.CYP: return(Resource.Drawable.flag_of_Cyprus); case PoiCountry.EST: return(Resource.Drawable.flag_of_Estonia); case PoiCountry.GBR: return(Resource.Drawable.flag_of_UnitedKingdom); case PoiCountry.XKX: return(Resource.Drawable.flag_of_Kosovo); case PoiCountry.LVA: return(Resource.Drawable.flag_of_Latvia); case PoiCountry.LTU: return(Resource.Drawable.flag_of_Lithuania); case PoiCountry.MLT: return(Resource.Drawable.flag_of_Malta); case PoiCountry.MCO: return(Resource.Drawable.flag_of_Monaco); case PoiCountry.PRT: return(Resource.Drawable.flag_of_Portugal); case PoiCountry.RUS: return(Resource.Drawable.flag_of_Russia); case PoiCountry.AND: return(Resource.Drawable.flag_of_Andorra); case PoiCountry.FRO: return(Resource.Drawable.flag_of_FaroeIslands); case PoiCountry.GEO: return(Resource.Drawable.flag_of_Georgia); case PoiCountry.MNE: return(Resource.Drawable.flag_of_Montenegro); case PoiCountry.MDA: return(Resource.Drawable.flag_of_Moldova); case PoiCountry.IRL: return(Resource.Drawable.flag_of_Ireland); case PoiCountry.MKD: return(Resource.Drawable.flag_of_Macedonia); case PoiCountry.GGY: return(Resource.Drawable.flag_of_Guernsey); case PoiCountry.IMN: return(Resource.Drawable.flag_of_IsleOfMan); case PoiCountry.AZO: return(Resource.Drawable.flag_of_Azores); default: return(Resource.Drawable.flag_of_Unknown); } }
public static Language GetDefaultLanguage() { var regionCode = RegionInfo.CurrentRegion; if (!PoiCountry.TryParse <PoiCountry>(regionCode.ThreeLetterISORegionName, out var poiCountry)) { return(Language.English); } switch (poiCountry) { case PoiCountry.AUT: //austria case PoiCountry.DEU: //germany case PoiCountry.CHE: //switzerland case PoiCountry.LIE: //liechtenstein return(Language.German); case PoiCountry.CZE: //czech case PoiCountry.SVK: //slovakia return(Language.Czech); case PoiCountry.FRA: //france return(Language.French); case PoiCountry.ITA: //italy case PoiCountry.MCO: //monaco return(Language.Italian); case PoiCountry.ESP: //spain case PoiCountry.PRT: //portugal case PoiCountry.AZO: //azores case PoiCountry.AND: //andorra return(Language.Spanish); case PoiCountry.GBR: //great-britain case PoiCountry.IRL: //ireland case PoiCountry.IMN: //isle-of-man return(Language.English); case PoiCountry.HUN: //hungary case PoiCountry.POL: //poland case PoiCountry.ROU: //romania case PoiCountry.SVN: //slovenia case PoiCountry.BEL: //belgium case PoiCountry.BIH: //bosna & Herzegovina case PoiCountry.HRV: //croatia case PoiCountry.BGR: //bulgaria case PoiCountry.DNK: //denmark case PoiCountry.FRO: //faroe-islands case PoiCountry.FIN: //finland case PoiCountry.LUX: //luxembourg case PoiCountry.NLD: //netherlands case PoiCountry.NOR: //norway case PoiCountry.ERB: //serbia case PoiCountry.SWE: //sweden case PoiCountry.GRC: //greece case PoiCountry.UKR: //ukraine case PoiCountry.BLR: //belarus case PoiCountry.ALB: //albania case PoiCountry.CYP: //cyprus case PoiCountry.EST: //estonia case PoiCountry.XKX: //kosovo case PoiCountry.LVA: //latvia case PoiCountry.LTU: //lithuania case PoiCountry.MKD: //macedonia case PoiCountry.MLT: //malta case PoiCountry.RUS: //russia case PoiCountry.GEO: //georgia case PoiCountry.GGY: //guernsey case PoiCountry.MNE: //montenegro case PoiCountry.MDA: //moldova return(Language.English); default: return(Language.English); } }
private static string GetCountryPart(PoiCountry country) { switch (country) { case PoiCountry.AUT: return("3B46C567-83D0-4751-B296-BD6184229D"); case PoiCountry.CZE: return("948268dd-71a7-4696-bb8c-dafdad5e48"); case PoiCountry.FRA: return("9fa3dd4e-46bf-4a58-bbb8-625ea4755f"); case PoiCountry.DEU: return("47FCF987-5655-4AE0-9964-367A88E546"); case PoiCountry.HUN: return("fcf08d5b-060a-4379-a7d4-14d60e0787"); case PoiCountry.ITA: return("4DBF1E0D-146C-4E12-99CD-BF47C424AA"); case PoiCountry.POL: return("827EDFA8-83EA-4D7D-B18C-67518D08DB"); case PoiCountry.ROU: return("3E337A9B-27BD-401B-8D53-4021445671"); case PoiCountry.SVK: return("a936b146-ab96-451f-b24b-f270c8373e"); case PoiCountry.SVN: return("DEABB987-AA20-46B7-A0C3-9CA94BA034"); case PoiCountry.ESP: return("627c8265-793d-4450-8071-690d54ad0a"); case PoiCountry.CHE: return("e6963288-eb9d-4e2b-bdc6-40d36ddc13"); case PoiCountry.BEL: return("e2e2d4dc-43cc-467d-8a8c-81eebe325d"); case PoiCountry.BIH: return("15fe4786-87dd-46a7-a1b5-6eb7d75a7a"); case PoiCountry.HRV: return("959737df-a344-4284-b9c9-aab1e56b8c"); case PoiCountry.BGR: return("ee791400-6414-472f-a0fe-86bfd820ed"); case PoiCountry.DNK: return("72598c7a-1910-4a0c-972b-0ea56cd6fd"); case PoiCountry.FIN: return("2d88f613-f0d8-4565-a585-2783ee5f8d"); case PoiCountry.LIE: return("7dcb0c3a-c928-4ac7-84aa-13bb162fc1"); case PoiCountry.LUX: return("9bd3a549-5db5-4801-ae7d-06b5ed98b2"); case PoiCountry.NLD: return("2c5505c5-d40a-44d7-952d-4c1f02e218"); case PoiCountry.NOR: return("2823c60d-10d7-4c1d-a184-6a1ac2766c"); case PoiCountry.ERB: return("82a1781d-4612-4916-ba9a-ba7548543a"); case PoiCountry.SWE: return("4b3be5ce-b7fe-4229-b8b0-164b8161ce"); case PoiCountry.GRC: return("8cb0e465-3bc8-4072-aa10-5f3af2e1a2"); case PoiCountry.UKR: return("00410178-37de-4caf-9bce-9b836db533"); case PoiCountry.BLR: return("c420bbc6-40e5-43fb-b588-35b5a01ebd"); case PoiCountry.ALB: return("60497641-f19f-4bee-93c3-1a750ff887"); case PoiCountry.CYP: return("95b21b0f-d7f9-4c9d-8da2-02a5fee8f2"); case PoiCountry.EST: return("4da59190-6d02-4796-97f4-8ed8ec1677"); case PoiCountry.GBR: return("fb280934-9e32-47c9-86d5-f1bc1e63e7"); case PoiCountry.IRL: return("8572effc-8344-4ea3-b1b5-4ad9d7a9c0"); case PoiCountry.XKX: return("bd8721c8-6c90-4c22-9b96-85e99d293e"); case PoiCountry.LVA: return("b5ec9c53-31fd-46dc-a2da-db3696a54e"); case PoiCountry.LTU: return("0a58aeae-a523-4c68-9eae-ff2f60109d"); case PoiCountry.MKD: return("0b910f9b-4cbb-45dc-aac4-a85631efe8"); case PoiCountry.MLT: return("fb9ddc61-89e9-461f-bc97-d490a3fa43"); case PoiCountry.MCO: return("20e1578a-a397-4e07-8bee-83a7ed6afc"); case PoiCountry.PRT: return("127d8a08-469b-4e4c-81b4-1cf5f65b10"); case PoiCountry.RUS: return("ba390b0c-ea41-4607-9f70-f0734cc9ea"); case PoiCountry.AND: return("7d4b40c3-1d86-4a77-93b1-9dba42271c"); case PoiCountry.FRO: return("a26512c9-9231-4219-a83f-1b0716154a"); case PoiCountry.GEO: return("8bd0a102-9652-4b83-91b7-aeff3511be"); case PoiCountry.GGY: return("dcce3793-0d88-4433-8a23-8f1c1b8e2d"); case PoiCountry.IMN: return("416c870b-e80c-4e5e-8812-d95946cea8"); case PoiCountry.MNE: return("c42b2519-caec-43ab-b897-34804c6bc2"); case PoiCountry.AZO: return("f0491f1b-1b9b-4499-bb52-964da0e2a4"); case PoiCountry.MDA: return("a7fb494b-510d-44c5-bbc0-71a3983ceb"); default: throw new ArgumentOutOfRangeException(nameof(country), country, null); } }
private static void AddPoiData(CountryData cd, string dir, PoiCategory category, PoiCountry poiCountry) { var pd = GetPoiData(dir, category, poiCountry); if (pd != null && pd.PointCount > 0) { cd.PoiData.Add(pd); } }
private static Guid GetGuid(PoiCountry country, PoiCategory category) { return(new Guid(GetCountryPart(country) + GetCategoryPart(category))); }