public static AnchorPointList CreateNear(Coordinates center, float radius1, float radius2) { bool rc = false; RGEContext db = new RGEContext(); AnchorPointList anchor_point_list = new AnchorPointList(); using (SqlCommand cmd = new SqlCommand("EGH.GetListAnchorPointOnDistanceLessThanD2MoreThanD1", db.connection)) { cmd.CommandType = CommandType.StoredProcedure; { SqlParameter parm = new SqlParameter("@ШиротаГрад", SqlDbType.Real); parm.Value = center.latitude; cmd.Parameters.Add(parm); } { SqlParameter parm = new SqlParameter("@ДолготаГрад", SqlDbType.Real); parm.Value = center.lngitude; cmd.Parameters.Add(parm); } { SqlParameter parm = new SqlParameter("@Расстояние1", SqlDbType.Real); parm.Value = radius1; cmd.Parameters.Add(parm); } { SqlParameter parm = new SqlParameter("@Расстояние2", SqlDbType.Real); parm.Value = radius2; cmd.Parameters.Add(parm); } try { cmd.ExecuteNonQuery(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { int id = (int)reader["IdТехногенногоОбъекта"]; float x = (float)reader["ШиротаГрад"]; float y = (float)reader["ДолготаГрад"]; int ground_type_code = (int)reader["ТипГрунта"]; int cadastre_type_code = (int)reader["КодНазначенияЗемель"]; float waterdeep = (float)reader["ГлубинаГрунтовыхВод"]; float height = (float)reader["ВысотаУровнемМоря"]; GroundType ground_type = new GroundType(ground_type_code); Coordinates coordinates = new Coordinates((float)x, (float)y); CadastreType cadastre_type = new CadastreType(cadastre_type_code); Point point = new Point(coordinates, ground_type, (float)waterdeep, (float)height); //delta = (float)reader["Расстояние"]; AnchorPoint anchor_point = new AnchorPoint(id, point, cadastre_type); anchor_point_list.Add(anchor_point); } rc = anchor_point_list.Count > 0; reader.Close(); } catch (Exception e) { rc = false; }; return(anchor_point_list); } }
public static AnchorPointList CreateAnchorPointList(XmlNode node) { AnchorPointList apl = new AnchorPointList(); foreach (XmlElement x in node) { if (x.Name.Equals("AnchorPoint")) { apl.Add(new AnchorPoint(x)); } } return(apl); }
// найти список точек в заданном радиусе public static AnchorPointList CreateNear(Coordinates center, float distance) { bool rc = false; RGEContext db = new RGEContext(); AnchorPointList anchor_point_list = new AnchorPointList(); using (SqlCommand cmd = new SqlCommand("EGH.GetListAnchorPointOnDistanceLessThanD", db.connection)) { cmd.CommandType = CommandType.StoredProcedure; { SqlParameter parm = new SqlParameter("@ШиротаГрад", SqlDbType.Real); parm.Value = center.latitude; cmd.Parameters.Add(parm); } { SqlParameter parm = new SqlParameter("@ДолготаГрад", SqlDbType.Real); parm.Value = center.lngitude; cmd.Parameters.Add(parm); } { SqlParameter parm = new SqlParameter("@Расстояние", SqlDbType.Real); parm.Value = distance; cmd.Parameters.Add(parm); } try { //cmd.ExecuteNonQuery(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { int id = (int)reader["IdОпорнойГеологическойТочки"]; float x = (float)reader["ШиротаГрад"]; float y = (float)reader["ДолготаГрад"]; int ground_type_code = (int)reader["ТипГрунта"]; float waterdeep = (float)reader["ГлубинаГрунтовыхВод"]; float height = (float)reader["ВысотаУровнемМоря"]; GroundType ground_type = new GroundType(ground_type_code); Coordinates coordinates = new Coordinates((float)x, (float)y); int cadastre_type_code = (int)reader["КодНазначенияЗемель"]; string ground_type_name = (string)reader["НаименованиеНазначенияЗемель"]; float pdk_koef = (float)reader["ПДК"]; float water_pdk_koef = (float)reader["ПДКводы"]; string pdk_korf_doc = (string)reader["НормДокументЗемля"]; string water_pdk_korf_doc = (string)reader["НормДокументВода"]; CadastreType cadastre_type = new CadastreType(cadastre_type_code, ground_type_name, pdk_koef, water_pdk_koef, pdk_korf_doc, water_pdk_korf_doc); Point point = new Point(coordinates, ground_type, (float)waterdeep, (float)height); //delta = (float)reader["Расстояние"]; AnchorPoint anchor_point = new AnchorPoint(id, point, cadastre_type); anchor_point_list.Add(anchor_point); } rc = anchor_point_list.Count > 0; reader.Close(); } catch (Exception e) { rc = false; }; return(anchor_point_list); } }