예제 #1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public MapDownloader(RegionTask task)
        {
            m_totalCount = task.TaskCount;
            var tasks = Enumerable.Empty <MapLine>();

            foreach (var t in task)
            {
                tasks = tasks.Concat(t);
            }

            m_taskQueue = new ConcurrentQueue <MapLine>(tasks);
            var test = m_taskQueue.Sum(o => o.TaskCount);
        }
예제 #2
0
        private static void Main(string[] args)
        {
            var regionList = File.ReadAllText("city.txt").Split(
                new[]
            {
                "$$"
            }, StringSplitOptions.RemoveEmptyEntries);

            var task = new RegionTask(1, 14);

            foreach (var region in regionList)
            {
                var points = region.Split(';');
                IList <MercatorPoint> ml = new List <MercatorPoint>();
                foreach (var p in points)
                {
                    var location = p.Split(',');
                    var lng      = Convert.ToDouble(location[0]);
                    var lat      = Convert.ToDouble(location[1]);
                    var m        = BaiduProjection.Instance.CoordinateToMercator(lat, lng);
                    ml.Add(m);
                }
                task.AddRegion(ml);
            }
            task.CalculateQuest();

            foreach (var zoom in task)
            {
                File.WriteAllText($"Zoom{zoom.Zoom}.txt", zoom.ToString());
            }
            var downloader = new MapDownloader(task);

            while (!downloader.IsComplete)
            {
                Console.WriteLine(downloader.GetDescription());
                Thread.Sleep(5000);
            }

            Console.ReadLine();
        }