Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        //  найти список точек в заданном радиусе
        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);
            }
        }