예제 #1
0
        public override void UpdateDownloadPriority(TileSource tileSource, int priority)
        {
            AsyncTileRequest tileRequest;

            if (this.tileRequests.TryGetValue(tileSource, out tileRequest))
            {
                tileRequest.NetworkPriority = (NetworkPriority)priority;
            }
        }
예제 #2
0
        public override void Download(TileInfo tileInfo, TileSource tileSource, AsyncTileRequestCompletedHandler callback, NetworkPriority networkPriority)
        {
            AsyncTileRequest tileRequest;

            if (this.tileRequests.TryGetValue(tileSource, out tileRequest))
            {
                throw new InvalidOperationException("Multiple concurrent downloads of the same tile is not supported.");
            }
            AsyncTileRequestQueue.Instance.CreateRequest(tileSource.GetUri(tileInfo), tileInfo, networkPriority, callback);
        }
예제 #3
0
        public override void Cancel(TileSource tileSource)
        {
            AsyncTileRequest tileRequest;

            if (!this.tileRequests.TryGetValue(tileSource, out tileRequest))
            {
                throw new InvalidOperationException(Messages.TileInProgressCancel);
            }
            tileRequest.IsAborted = true;
            tileRequest.AbortIfInQueue();
            tileRequests.Remove(tileSource);
        }
예제 #4
0
 public TileLayer(TileSource tileSource)
     : this(tileSource, Utility.CreateUniqueId())
 {
 }
예제 #5
0
 public TileLayer(TileSource tileSource, string id)
     : base(id)
 {
     SetTileSource(tileSource);
 }
예제 #6
0
 public TileLayer(TileSource tileSource, string id)
     : base(tileSource, id)
 {
     innerSource = tileSource;
 }