コード例 #1
0
ファイル: AutoGenerator.cs プロジェクト: jesumarquez/lt
        public void Generate(BaseQtree qtree)
        {
            var cartografia = new Cartografia(Config.Map.MapFilesDirectory);

            foreach (var mapa in cartografia.Mapas)
            {
                Generate(qtree, mapa);
            }
        }
コード例 #2
0
        public void Generate(Qtree qtree)
        {
            //var mapa = new Mapa("d:\\Mapas\\amba\\bsas.map");

            //var mapa = new Mapa("d:\\Mapas\\Chubut\\cmdo.map");
            var cartografia = new Cartografia("d:\\Mapas\\amba");

            foreach (var mapa in cartografia.Mapas)
            {
                Generate(qtree, mapa);
            }
        }
コード例 #3
0
        static void Main(string[] args)
        {
            Console.Write("QuadTree Tester Inicializando v 1.0\r\n");

            string basedir = @"C:\QTREE_REPO";

            var repo = new Repository();

            if (!System.IO.Directory.Exists(basedir))
            {
                Console.Write("El repositorio [{0}] no existe, lo creamos.\r\n", basedir);
                StorageGeometry sgeom = new StorageGeometry()
                {
                    Signature       = "0123456789ABCDEF",
                    CellBits        = (char)4,
                    ActiveKey       = 0x55AA55AA,
                    DataStart       = 2,
                    FileSectorCount = 64,
                    Lat_OffSet      = 340000000,
                    Lon_OffSet      = 580000000,
                    Lat_Grid        = 5000,
                    Lon_Grid        = 5000,
                    Lat_GridCount   = 2000,
                    Lon_GridCount   = 2000
                };

                if (!repo.Init(basedir, sgeom))
                {
                    Console.Write("Imposible inicializar el repositorio GR2\r\n");
                    Console.ReadLine();
                    return;
                }
            }

            StorageGeometry sgeom2 = new StorageGeometry();

            if (!repo.Open(basedir, ref sgeom2))
            {
                Console.Write("El repositorio GR2 parece corrupto.\r\n");
                Console.ReadLine();
                return;
            }


            Console.WriteLine("Header Signature: {0}", sgeom2.Signature);
            Console.ReadLine();


            var Cartografia = new Cartografia("C:\\MapasCopia");

            foreach (var map in Cartografia)
            {
                for (int j = map.Poligonos.Count - 1; j >= 0; j--)
                {
                    var poligono = map.Poligonos[j];
                    if (poligono.Nivel != 5000)
                    {
                        continue;
                    }
                    int[] vertices = map.Poligonos.GetVertices(j);


                    for (int i = 0; i < vertices.Length; i++)
                    {
                        var vertex = vertices[i];
                        var lonlat = new LonLat(map.Coords[vertex]);
                        //6T.TRACE("Creando vertice #{0} {1} {2}", vertex, lonlat.Latitud, lonlat.Longitud);
                        repo.SetPositionClass((float)lonlat.Latitud, (float)lonlat.Longitud, 1);
                        var Gr2Cache = repo.IndexCatalog.OfType <GR2>().FirstOrDefault();
                        Gr2Cache.SetReference((float)lonlat.Latitud, (float)lonlat.Longitud, "v", map.Vertices[vertex]);
                    }
                }
            }

            repo.SetPositionClass(34.5665F, 55.2235F, 12);
            int clase     = repo.GetPositionClass(34.5665F, 55.2235F);
            var Gr2Cache2 = repo.IndexCatalog.OfType <GR2>().FirstOrDefault();
            var rd        = Gr2Cache2.GetReference <Vertice>(34.5665F, 55.2235F, "vertices");

            Vertice ppp = new Vertice()
            {
                Tipo = 22123123, Prioridad = 1234, NReg = 2357
            };

            Gr2Cache2.SetReference(34.5665F, 55.2235F, "vertices", ppp);
            Console.Write("sample: clase leida {0}\r\n", clase);
            Console.Write("\r\n");

            /*
             * qtree.SetPositionClass(34.2665, 55.4235, 3);
             * qtree.SetPositionClass(34.267, 55.4235, 4);
             * qtree.SetPositionClass(34.268, 55.4235, 5);
             * qtree.SetPositionClass(34.269, 55.4235, 6);
             * qtree.SetPositionClass(34.270, 55.4235, 7);
             * qtree.SetPositionClass(34.271, 55.4235, 8);
             *
             * clase = qtree.GetPositionClass(34.2665, 55.4235);
             * Console.Write("sample: clase leida {0}\r\n", clase);
             * Console.Write("\r\n");
             *
             * clase = qtree.GetPositionClass(34.5665, 55.2235);
             * Console.Write("sample: clase leida {0}\r\n", clase);
             * Console.Write("\r\n");
             *
             * clase = qtree.GetPositionClass(34.2665, 55.4235);
             * Console.Write("sample: clase leida {0}\r\n", clase);
             * Console.Write("\r\n");
             *
             * qtree.SetPositionClass(37.5665, 55.2235, 12);
             * clase = qtree.GetPositionClass(37.5665, 55.2235);
             * Console.Write("sample: clase leida {0}\r\n", clase);
             * Console.Write("\r\n");
             *
             * qtree.SetPositionClass(37.2665, 55.4235, 3);
             * clase = qtree.GetPositionClass(37.2665, 55.4235);
             *
             * Console.Write("sample: clase leida {0}\r\n", clase);
             * Console.Write("\r\n");
             *
             * clase = qtree.GetPositionClass(37.5665, 55.2235);
             * Console.Write("sample: clase leida {0}\r\n", clase);
             * Console.Write("\r\n");
             *
             * clase = qtree.GetPositionClass(37.2665, 55.4235);
             * Console.Write("sample: clase leida {0}\r\n", clase);
             * Console.Write("\r\n");
             *
             * qtree.SetPositionClass(37.2665, 55.4235, 8);
             * clase = qtree.GetPositionClass(37.2665, 55.4235);
             * Console.Write("sample: clase leida {0}\r\n", clase);
             * Console.Write("\r\n");
             *
             * qtree.SetPositionClass(34.0, 55.0, 4);
             * qtree.SetPositionClass(34.99999, 55.99999, 4);
             *
             * qtree.SetPositionClass(46.5, 65.5, 5);
             * qtree.SetPositionClass(47.2, 56.4, 15); */


            repo.Close();
            Console.ReadLine();
        }