public override void LoadTileAtPath(MKTileOverlayPath path, MKTileOverlayLoadTileCompletionHandler result)
        {
            var key  = path.GetKey();
            var data = _cache.ObjectForKey(key) as NSData;

            if (data != null)
            {
                result.Invoke(data, null);
                return;
            }
            if (path.Z > MaximumZ)
            {
                var cut = Normalize(path, MaximumZ);
                data = _cache.ObjectForKey(key) as NSData;
                if (data != null)
                {
                    result.Invoke(data, null);
                    return;
                }
                base.LoadTileAtPath(cut.Path, (tileData, error) =>
                {
                    if (tileData != null)
                    {
                        tileData = ProcessImage(tileData, cut);
                        _cache.SetObjectforKey(tileData, key);
                    }
                    result.Invoke(tileData, error);
                });
                return;
            }
            base.LoadTileAtPath(path, result);
        }
Exemplo n.º 2
0
        public override void LoadTileAtPath(MKTileOverlayPath path, MKTileOverlayLoadTileCompletionHandler result)
        {
            NSUrl url = urlForTilePath(path);
            NSMutableUrlRequest request = new NSMutableUrlRequest(url);

            request.HttpMethod = "GET";
            NSUrlSession.SharedSession.CreateDataTask(request, (data, response, error) => {
                result(data, null);
            }).Resume();
        }
Exemplo n.º 3
0
 public override void LoadTileAtPath(MKTileOverlayPath path, MKTileOverlayLoadTileCompletionHandler result)
 {
     if (TileService != null)
     {
         Tile tile = TileService.TryGetTile((int)path.X, (int)((int)Math.Pow(2, path.Z) - 1 - path.Y), (int)path.Z);
         if (tile != null)
         {
             NSData tileData = NSData.FromArray(tile.TileData);
             result.Invoke(tileData, null);
         }
     }
 }
Exemplo n.º 4
0
 public override void LoadTileAtPath(MKTileOverlayPath path, MKTileOverlayLoadTileCompletionHandler result)
 {
     base.LoadTileAtPath(path, result);
 }