Esempio n. 1
0
        public override void Draw(esriDrawPhase drawPhase, IDisplay display, ITrackCancel trackCancel)
        {
            if (drawPhase == esriDrawPhase.esriDPGeography)
            {
                if (Visible)
                {
                    var mxdoc         = (IMxDocument)_application.Document;
                    var map           = mxdoc.FocusMap;
                    var activeView    = map as IActiveView;
                    var tileInfosMeta = TileCalculator.GetTiles(activeView, _tileSource);
                    tileInfos = tileInfosMeta.Tiles;
                    tiles     = new Dictionary <TileInfo, List <VectorTileLayer> >();

                    Logger.Debug("Mapbox vector tile, number of tiles: " + tileInfos.Count);
                    Logger.Debug("Mapbox vector tile, start downloading...");

                    var downloadFinished = new ManualResetEvent(false);
                    var t = new Thread(DownloadTiles);
                    t.Start(downloadFinished);
                    downloadFinished.WaitOne();
                    Logger.Debug("Mapbox vector tile, downloading finished.");
                    Logger.Debug("Mapbox vector tile, start drawing ...");

                    foreach (var tile in tiles)
                    {
                        DrawVectorTile(display, tile);
                    }
                    Logger.Debug("Mapbox vector tile, drawing finished.");
                }
            }
        }