public bool LoadPolygon(int mission_id) { bool result = false; if (DataSettings.UseDatabase) { DateTime dt = DateTime.Now; MySqlConnection conn = DataSettings.GetConnection(); using (MySqlCommand cmd = new MySqlCommand(null, conn)) { //clear old marker GMapOverlay overlay = Main.GetOverlay("polygons"); foreach (int id in Polygons.Keys) { var dat = Polygons[id]; overlay.Markers.Remove((GmapMarkerWithLabel)dat.Polygon.Tag); overlay.Polygons.Remove(dat.Polygon); } Polygons.Clear(); //load polygon area cmd.CommandText = "SELECT * FROM polygon_info WHERE mission_id = @mission_id"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("mission_id", mission_id); using (MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int id = reader.GetInt32("area_id"); string name = reader.GetString("area_name"); int property = reader.GetInt32("area_property"); AreaInfo ainfo = new AreaInfo(mission_id, id, name, property); Polygons.Add(id, ainfo); } } //load polygon point foreach (int id in Polygons.Keys) { AreaInfo ainfo = Polygons[id]; Dictionary <int, PointLatLng> points = new Dictionary <int, PointLatLng>(); cmd.CommandText = "SELECT * FROM polygon_point WHERE area_id = @id"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("id", id); using (MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int point_id = reader.GetInt32("point_id"); double lat = reader.GetDouble("point_lat"); double lng = reader.GetDouble("point_lng"); PointLatLng point = new PointLatLng(lat, lng); points.Add(point_id, point); } } ainfo.SetPoints(points); ainfo.Polygon = CreatePolygon(ainfo.Name, ainfo.GetPoints(), ainfo.Property); } } } return(result); }
public void LoadJson(string json) { Clear(); MPWrapper wrapper = JsonConvert.DeserializeObject <MPWrapper>(json); this.Markers = new Dictionary <int, SymbolInfo>(wrapper.Markers); this.Polygons = new Dictionary <int, AreaInfo>(wrapper.Polygons); foreach (int id in Markers.Keys) { SymbolInfo sinfo = Markers[id]; sinfo.Marker = MarkSymbol(sinfo.ImgID, sinfo.Name, sinfo.Point, sinfo.ID); } foreach (int id in Polygons.Keys) { AreaInfo ainfo = Polygons[id]; ainfo.Polygon = CreatePolygon(ainfo.Name, ainfo.GetPoints(), ainfo.Property); } }