コード例 #1
0
        static public void parseNetFiles(string FileName)
        {
            //fileName = ajax.net.xml
            char[]    splitCharacters = { ' ', ',' };
            XmlReader reader          = XmlReader.Create(FileName);

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:
                    if (reader.Name == "edge" && reader.GetAttribute("shape") != null)
                    {
                        string[] hold = (reader.GetAttribute("shape")).Split(splitCharacters);
                        for (int i = 0; i < hold.Length; i += 2)
                        {
                            roadContainer temp = new roadContainer();
                            double.TryParse(hold[i], out temp.x);
                            double.TryParse(hold[i + 1], out temp.y);
                            temp.edgeID = reader.GetAttribute("id");
                            if (temp.x < X_INTERSECTION && temp.y > Y_INTERSECTION)
                            {
                                quad1.Add(temp);
                            }
                            else if (temp.x > X_INTERSECTION && temp.y > Y_INTERSECTION)
                            {
                                quad2.Add(temp);
                            }
                            else if (temp.x < X_INTERSECTION && temp.y < Y_INTERSECTION)
                            {
                                quad3.Add(temp);
                            }
                            else if (temp.x > X_INTERSECTION && temp.y < Y_INTERSECTION)
                            {
                                quad4.Add(temp);
                            }
                        }
                    }
                    break;
                }
            }
        }
コード例 #2
0
        public static double[] CalculateCenterPoint(string FileName)
        {
            int Count = 0;

            double[]  f_CenterPoint   = new double[2];
            char[]    splitCharacters = { ' ', ',' };
            XmlReader reader          = XmlReader.Create(FileName);

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:
                    if (reader.Name == "edge" && reader.GetAttribute("shape") != null)
                    {
                        string[] hold = (reader.GetAttribute("shape")).Split(splitCharacters);
                        for (int i = 0; i < hold.Length; i += 2)
                        {
                            roadContainer temp = new roadContainer();
                            double.TryParse(hold[i], out temp.x);
                            double.TryParse(hold[i + 1], out temp.y);
                            temp.edgeID       = reader.GetAttribute("id");
                            f_CenterPoint[0] += temp.x;
                            f_CenterPoint[1] += temp.y;
                            Count++;
                        }
                    }
                    break;
                }
            }

            f_CenterPoint[0] = f_CenterPoint[0] / Count;
            f_CenterPoint[1] = f_CenterPoint[1] / Count;
            X_INTERSECTION   = f_CenterPoint[0];
            Y_INTERSECTION   = f_CenterPoint[1];
            return(f_CenterPoint);
        }