public void AutoGenerateChildren(MatchCollection matches) { int count = 0; foreach (Match match in matches) { m_mon.SetProgress((double) count, (double) matches.Count, Catalog.GetString("Processing Children..."), false); DegreeMinutes[] coord = Utilities.ParseCoordString(match.Captures[0].Value); System.Console.WriteLine(Utilities.getCoordString(coord[0], coord[1])); Waypoint newPoint = new Waypoint (); Geocache parent = m_mon.SelectedCache; newPoint.Symbol = "Reference Point"; newPoint.Parent = parent.Name; newPoint.Lat = coord[0].GetDecimalDegrees(); newPoint.Lon = coord[1].GetDecimalDegrees(); newPoint.Desc = Catalog.GetString("Grabbed Waypoint"); String name = "RP" + parent.Name.Substring (2); if (m_mon.Configuration.IgnoreWaypointPrefixes) { name = parent.Name; } name = Engine.getInstance().Store.GenerateNewName(name); newPoint.Name = name; CacheStore store = Engine.getInstance ().Store; store.AddWaypointAtomic (newPoint); count++; } }
public void AutoGenerateChildren(MatchCollection matches) { int count = 0; m_App.CacheStore.StartUpdate(); foreach (Match match in matches) { DegreeMinutes[] coord = Utilities.ParseCoordString (match.Captures[0].Value); System.Console.WriteLine (Utilities.getCoordString (coord[0], coord[1])); Waypoint newPoint = new Waypoint (); Geocache parent = m_Cache; newPoint.Symbol = "Reference Point"; newPoint.Parent = parent.Name; newPoint.Lat = coord[0].GetDecimalDegrees (); newPoint.Lon = coord[1].GetDecimalDegrees (); newPoint.Desc = Catalog.GetString ("Grabbed Waypoint"); String name = "RP" + parent.Name.Substring (2); if (m_App.AppConfig.IgnoreWaypointPrefixes) { name = parent.Name; } name = m_App.CacheStore.GetUniqueName(name); newPoint.Name = name; m_App.CacheStore.AddWaypointOrCache(newPoint, false, false); count++; } m_App.CacheStore.CompleteUpdate(); m_App.RefreshAll(); }
public void SetPoint(ocmengine.Waypoint pnt) { m_point = pnt; descriptionEntry.Buffer.Text = pnt.Desc; flagEntry.Active = GetPTTypeCode(pnt.Symbol); nameEntry.Text = pnt.Name; locationWidget.Latitude = pnt.Lat; locationWidget.Longitude = pnt.Lon; }
public void WriteToGPX(XmlWriter writer, GPXWriter gpx) { writer.WriteStartElement("wpt", GPXWriter.NS_GPX); WriteWPTDetails(writer, gpx); writer.WriteEndElement(); if (!gpx.IncludeChildWaypoints) return; IEnumerator<Waypoint> itr = Engine.getInstance().GetChildWaypoints(this.Name); while (itr.MoveNext()) { itr.Current.WriteToGPX(writer, gpx); } if ((this is Geocache) && ((this as Geocache).HasCorrected)) { Geocache cache = this as Geocache; Waypoint orig = new Waypoint(); orig.Name = cache.Name + "-ORIG"; orig.Lat = cache.OrigLat; orig.Lon = cache.OrigLon; orig.Symbol = "Reference Point"; orig.Type = "Waypoint|Reference Point"; orig.Desc = Catalog.GetString("Original Location") + " - " + cache.CacheName; orig.WriteToGPX(writer, gpx); } }
/// <summary> /// Adds a waypoint to the store. If a waypoint already exists with this name, the entry is replaced /// </summary> /// <param name="point"> /// The waypoint to add <see cref="Waypoint"/> /// </param> public abstract void AddWaypointOrCache(Waypoint point, bool lockSymbol, bool partialUpdate);
public void AddWaypoint(Waypoint point) { AddWaypoint(point, false); }
protected virtual void doAdd(object sender, System.EventArgs e) { try { Waypoint newPoint = new Waypoint (); Geocache parent = m_mon.SelectedCache; newPoint.Symbol = "Final Location"; newPoint.Parent = parent.Name; newPoint.Lat = parent.Lat; newPoint.Lon = parent.Lon; String name = "FL" + parent.Name.Substring (2); WaypointDialog dlg = new WaypointDialog (); if (m_mon.Configuration.IgnoreWaypointPrefixes) { name = parent.Name; dlg.IgnorePrefix = true; } name = Engine.getInstance().Store.GenerateNewName(name); newPoint.Name = name; dlg.SetPoint (newPoint); if ((int)ResponseType.Ok == dlg.Run ()) { newPoint = dlg.GetPoint (); if (newPoint.Symbol == "Final Location") parent.HasFinal = true; CacheStore store = Engine.getInstance ().Store; store.AddWaypointAtomic (newPoint); dlg.Dispose (); UpdateCacheInfo (); } } catch (Exception ex) { UIMonitor.ShowException (ex); } }
public void AddWaypointAtomic(Waypoint point) { IDbTransaction trans = StartUpdate(); AddWaypoint(point); EndUpdate(trans); }
private void parseGeocacheElement(ref Waypoint pt, XmlReader reader) { Geocache cache = pt as Geocache; if (m_source == "opencaching") { cache = ParseOpenCache(reader, ref cache); } else if (reader.NamespaceURI.StartsWith("http://www.groundspeak.com/cache") || reader.NamespaceURI.StartsWith("http://www.gsak.net/xmlv1/5")) { cache = ParseGroundSpeakCache (reader, ref cache); } else if (reader.NamespaceURI.StartsWith("http://www.TerraCaching.com")) { cache = ParseTerraCache (reader, ref cache); } }
private void ParseNaviCache(Waypoint pt) { Geocache cache = pt as Geocache; cache.Symbol = "NaviCache"; String[] lines = pt.Desc.Split('\n'); for (int i=0; i < lines.Length; i++) { if (i ==0 ) { cache.CacheName = lines[0]; } else if (i == 1) continue; else { String[] details = lines[i].Split(':'); String detail = details[1].Trim(); if (i == 2) { ParseCacheType(detail, ref cache); } else if (i == 3) { if (detail == "Normal") cache.Container = "Regular"; else if (detail == "Virtual" || detail == "Unknown") cache.Container = "Not chosen"; else cache.Container = detail; } else if (i == 4) { cache.Difficulty = float.Parse(detail, CultureInfo.InvariantCulture); } else if (i == 5) { cache.Terrain = float.Parse(detail, CultureInfo.InvariantCulture); } } } cache.Desc = cache.CacheName + " (" + cache.Difficulty + "/" + cache.Terrain + ")"; }
public void EditChildWaypoint(Waypoint pt) { Geocache parent = m_Window.CacheList.SelectedCache; WaypointDialog dlg = new WaypointDialog (); string origname = pt.Name; dlg.App = this; dlg.IgnorePrefix = m_Config.IgnoreWaypointPrefixes; dlg.SetPoint (pt); if ((int)ResponseType.Ok == dlg.Run ()) { pt = dlg.GetPoint (); if (pt.Symbol == "Final Location") parent.HasFinal = true; if (!parent.Children) parent.Children = true; m_Store.AddWaypointOrCache (pt, false, false); if (pt.Name != origname) m_Store.DeleteWaypoint(origname); m_Window.Refresh(); m_Window.CacheInfo.SelectChildByName(pt.Name); } dlg.Hide(); }
public void processLocWpt(ref Waypoint pt, XmlReader reader) { if (reader.Name == "name") { pt.Name = reader.GetAttribute("id"); pt.Desc = reader.ReadElementContentAsString().Trim(); this.ParseWaypoint(this, new ParseEventArgs(String.Format("Processing Waypoint {0}", pt.Name))); } else if (reader.Name == "coord") { pt.Lat = double.Parse(reader.GetAttribute("lat"), CultureInfo.InvariantCulture); pt.Lon = double.Parse(reader.GetAttribute("lon"), CultureInfo.InvariantCulture); } else if (reader.Name == "terrain") { (pt as Geocache).Terrain = float.Parse(reader.ReadString()); } else if (reader.Name == "difficulty") { (pt as Geocache).Difficulty = float.Parse(reader.ReadString()); } else if (reader.Name == "container") { string val = reader.ReadString().Trim(); if (val == "2") (pt as Geocache).Container = "Micro"; else if (val == "8") (pt as Geocache).Container = "Small"; else if (val == "3") (pt as Geocache).Container = "Regular"; else if (val == "4") (pt as Geocache).Container = "Large"; else if (val == "5") (pt as Geocache).Container = "Virtual"; else (pt as Geocache).Container = "Not Chosen"; } else if (reader.Name == "type") { pt.Symbol = reader.ReadElementContentAsString(); pt.Type = pt.Symbol; if (pt.Type == "Geocache") { if (pt.URL == null) pt.URL = new Uri("http://geocaching.com"); pt = Geocache.convertFromWaypoint(pt); if (m_source == "NaviCache") { ParseNaviCache (pt); } } } else if (reader.Name == "link") { pt.URLName = reader.GetAttribute("text"); pt.URL = new Uri(reader.ReadElementContentAsString()); ((Geocache) pt).LongDesc = "<a href=\"" + pt.URL.ToString() + "\">View Online</a>"; } }
public void AddChildWaypoint(double lat, double lon) { Waypoint newPoint = new Waypoint (); Geocache parent = m_Window.CacheList.SelectedCache; newPoint.Symbol = "Final Location"; newPoint.Parent = parent.Name; newPoint.Lat = lat; newPoint.Lon = lon; String name = "FL" + parent.Name.Substring (2); WaypointDialog dlg = new WaypointDialog (); dlg.IgnorePrefix = m_Config.IgnoreWaypointPrefixes; dlg.App = this; if (m_Config.IgnoreWaypointPrefixes) { name = parent.Name; dlg.IgnorePrefix = true; } name = m_Store.GetUniqueName(name); newPoint.Name = name; dlg.SetPoint (newPoint); if ((int)ResponseType.Ok == dlg.Run ()) { newPoint = dlg.GetPoint (); if (newPoint.Symbol == "Final Location") parent.HasFinal = true; if (!parent.Children) parent.Children = true; m_Store.AddWaypointOrCache (newPoint, false, false); m_Window.Refresh(); m_Window.CacheInfo.SelectChildByName(newPoint.Name); } dlg.Hide(); }
internal void UpdateWaypoint(Waypoint pt, bool noOverwrite) { if (m_conn == null) throw new Exception("DB NOT OPEN"); double lat = pt.Lat; double lon = pt.Lon; if (pt is Geocache) { lat = (pt as Geocache).OrigLat; lon = (pt as Geocache).OrigLon; } IDbCommand cmd = m_conn.CreateCommand(); string insert = String.Format(INSERT_WPT, SQLEscape(pt.Name), lat.ToString(CultureInfo.InvariantCulture), lon.ToString(CultureInfo.InvariantCulture), pt.URL, SQLEscape(pt.URLName), SQLEscape(pt.Desc), pt.Symbol, pt.Type, pt.Time.ToString("o"), pt.Parent, pt.Updated.ToString("o")); string update; if (noOverwrite) update = String.Format(UPDATE_WPT_NO_SYM, SQLEscape(pt.Name), lat.ToString(CultureInfo.InvariantCulture), lon.ToString(CultureInfo.InvariantCulture), pt.URL, SQLEscape(pt.URLName), SQLEscape(pt.Desc), pt.Type, pt.Time.ToString("o"), pt.Parent, pt.Updated.ToString("o")); else update = String.Format(UPDATE_WPT, SQLEscape(pt.Name), lat.ToString(CultureInfo.InvariantCulture), lon.ToString(CultureInfo.InvariantCulture), pt.URL, SQLEscape(pt.URLName), SQLEscape(pt.Desc), pt.Symbol, pt.Type, pt.Time.ToString("o"), pt.Parent, pt.Updated.ToString("o")); InsertOrUpdate (update, insert, cmd); }
public void UpdateWaypointAtomic(Waypoint pt) { IDbTransaction trans = StartUpdate(); UpdateWaypoint(pt, false); EndUpdate(trans); }
protected virtual void OnAddClick(object sender, System.EventArgs e) { ocmengine.Waypoint pt = reviewWidget.GetPoint(); m_App.CacheStore.AddWaypointOrCache(pt, false, false); NextMatch(); }
public double GetDistanceFromParent(Waypoint pt) { if (pt == null) return 0; return Utilities.calculateDistance (m_Cache.Lat, pt.Lat, m_Cache.Lon, pt.Lon); }
public void UpdateCacheInfo() { Geocache cache = m_mon.SelectedCache; m_childPoints.Clear (); m_mon.ClearMarkers (); if (cache == null) { addButton.Sensitive = false; grabButton.Sensitive = false; return; } else { addButton.Sensitive = true; grabButton.Sensitive = true; } ShowChildWaypoints (cache); if (cache.HasCorrected) { Waypoint Orig = new Waypoint(); Orig.Name = cache.Name + "-ORIG"; Orig.Lat = cache.OrigLat; Orig.Lon = cache.OrigLon; Orig.Symbol = "Geocache"; Orig.Type = "Geocache - Original"; Orig.Desc = Catalog.GetString("Original Location"); m_mon.AddMapWayPoint (Orig, cache); m_childPoints.AppendValues(Orig); } m_mon.SetProgressDone(false); m_ListSort.SetSortColumnId (1, SortType.Ascending); m_mon.Main.QueueDraw(); if (m_mon.ShowNearby) m_mon.GetNearByCaches(); }
public static Geocache convertFromWaypoint(Waypoint original) { Geocache cache = new Geocache(); cache.Name = original.Name; cache.Time = original.Time; cache.Lat = original.Lat; cache.Lon = original.Lon; cache.Desc = original.Desc; cache.Symbol = original.Symbol; cache.URL = original.URL; cache.URLName = original.URLName; cache.Type = original.Type; cache.Updated = original.Updated; cache.CacheName = original.Desc; cache.Available = true; cache.Archived = false; cache.TypeOfCache = Geocache.CacheType.GENERIC; cache.ShortDesc = ""; if (cache.URL != null) cache.LongDesc = "<a href=\"" + cache.URL.ToString() + "\">View Online</a>"; return cache; }
private Waypoint processLocWaypoint(XmlReader reader) { Waypoint newPoint = new Waypoint(); bool breakLoop = false; while (!breakLoop && reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: processLocWpt(ref newPoint, reader); break; case XmlNodeType.EndElement: if (reader.Name == "waypoint") breakLoop = true; break; } } return newPoint; }
public void AddWaypoint(Waypoint point, bool noOverwrite) { if (point is Geocache) AddCache(point as Geocache); UpdateWaypoint(point, noOverwrite); }
private Waypoint processWaypoint(XmlReader reader) { Waypoint newPoint = new Waypoint(); String lat = reader.GetAttribute("lat"); String lon = reader.GetAttribute("lon"); newPoint.Lat = float.Parse(lat, CultureInfo.InvariantCulture); newPoint.Lon = float.Parse(lon, CultureInfo.InvariantCulture); bool breakLoop = false; while (!breakLoop && reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: processWptElement(ref newPoint, reader); break; case XmlNodeType.EndElement: if (reader.Name == "wpt") breakLoop = true; break; } } return newPoint; }
private void processWptElement(ref Waypoint pt, XmlReader reader) { System.Console.WriteLine("Processing: " + reader.LocalName); if (pt is Geocache) { parseGeocacheElement(ref pt, reader); } else if (reader.LocalName == "name") { pt.Name = reader.ReadString(); System.Console.WriteLine("Name is : " + pt.Name); this.ParseWaypoint(this, new ParseEventArgs(String.Format("Processing Waypoint {0}", pt.Name))); pt.Parent = "GC" + pt.Name.Substring(2); } else if (reader.LocalName == "url") { String url = reader.ReadString().Trim(); if (!String.IsNullOrEmpty(url)) pt.URL = new Uri(url); } else if (reader.LocalName == "parent") { pt.Parent = reader.ReadString(); } else if (reader.LocalName == "desc") { pt.Desc = reader.ReadElementContentAsString(); } else if (reader.LocalName == "time") { string strVal = reader.ReadString(); pt.Time = DateTime.Parse(strVal); } else if (reader.LocalName == "link") { pt.URL = new Uri(reader.GetAttribute("href")); pt.URLName = pt.Name; } else if (reader.LocalName == "urlname") { pt.URLName = reader.ReadString(); } else if (reader.LocalName == "sym") { pt.Symbol = reader.ReadString(); } else if (reader.LocalName == "type") { pt.Type = reader.ReadString(); if (pt.Type.StartsWith("Geocache") || pt.Type.StartsWith("TerraCache")) { pt = Geocache.convertFromWaypoint(pt); } else if (pt.Symbol == "Waymark") { // TEMP: For now, convert Waymark into a virtual cache pt = Geocache.convertFromWaypoint(pt); Geocache cache = pt as Geocache; cache.ShortDesc = pt.Type + "\n\n"; cache.CacheName = pt.Type + ": " + pt.URLName; // Need to give it a unique ID for Oregon/Colorado. Random rand = new Random(); cache.CacheID = rand.Next(50000000).ToString(); cache.TypeOfCache = Geocache.CacheType.VIRTUAL; cache.Type = "Geocache"; cache.LongDesc = cache.Desc; cache.Container = "Virtual"; cache.Difficulty = 1.0f; cache.Terrain = 1.0f; pt.Desc = cache.CacheName; pt.Symbol = "Geocache"; pt.Type = "Geocache|Virtual Cache"; cache.PlacedBy = "Unknown"; } } }
public ocmengine.Waypoint GetPoint() { Waypoint pt = new Waypoint(); pt.Name = nameEntry.Text; pt.Lat = m_lat.GetDecimalDegrees(); pt.Lon = m_lon.GetDecimalDegrees(); pt.Parent = m_parent.Name; pt.Symbol = GetPTType(flagEntry.Active); pt.Desc = descriptionText.Buffer.Text; return pt; }
private Waypoint BuildWaypoint(IDataReader reader) { Waypoint pt = new Waypoint(); pt.Name = reader.GetString(0); pt.Lat = double.Parse(reader.GetString(1), CultureInfo.InvariantCulture); pt.Lon = double.Parse(reader.GetString(2), CultureInfo.InvariantCulture); string url = reader.GetString(3); if (!String.IsNullOrEmpty(url)) pt.URL = new Uri(url); pt.URLName = reader.GetString(4); pt.Desc = reader.GetString(5); pt.Symbol = reader.GetString(6); pt.Type = reader.GetString(7); pt.Time = DateTime.Parse(reader.GetString(8)); pt.Parent = reader.GetString(9); pt.Updated = DateTime.Parse(reader.GetString(10)); return pt; }