Ejemplo n.º 1
0
    public TileRequest CreateTileRequest(long id, RequestCallback callback)
    {
        tId.Set(id);
        string url  = urlPrefix + tId.ToURL() + tokenSufix;
        string file = cachePath + tId.Z + Path.DirectorySeparatorChar + tId.X + "_" + tId.Y + ".tile";

        return(new TileRequest(id, file, url, callback));
    }
Ejemplo n.º 2
0
    public override void LoadFromBookmark(BinaryReader br, string bookmarkPath)
    {
        longitude = br.ReadDouble();
        latitude  = br.ReadDouble();

        zoom      = br.ReadSingle();
        zoomLevel = br.ReadInt32();

        tilesToUnits = br.ReadSingle();
        unitsToTiles = br.ReadSingle();

        pixelsToUnits = br.ReadSingle();
        unitsToPixels = br.ReadSingle();

        unitsToMeters = br.ReadSingle();
        metersToUnits = br.ReadSingle();

        currentLevel = br.ReadInt32();

        currentMeters.x = br.ReadDouble();
        currentMeters.y = br.ReadDouble();

        viewBounds.x      = br.ReadSingle();
        viewBounds.y      = br.ReadSingle();
        viewBounds.width  = br.ReadSingle();
        viewBounds.height = br.ReadSingle();

        mapCoordBounds.west  = br.ReadDouble();
        mapCoordBounds.east  = br.ReadDouble();
        mapCoordBounds.north = br.ReadDouble();
        mapCoordBounds.south = br.ReadDouble();

        mapTileBounds.West  = br.ReadInt32();
        mapTileBounds.East  = br.ReadInt32();
        mapTileBounds.North = br.ReadInt32();
        mapTileBounds.South = br.ReadInt32();

        anchor.Set(br.ReadInt64());

        anchorOffsetInUnits.x = br.ReadSingle();
        anchorOffsetInUnits.y = br.ReadSingle();

        SetCenter(longitude, latitude);
        SetZoom(zoom);
    }
Ejemplo n.º 3
0
    private void CancelRequests(int mapZoom, MapTileBounds bounds)
    {
        var node = requestHandler.PendingRequests.First;
        var tId  = new MapTileId();

        while (node != null)
        {
            var next    = node.Next;
            var request = node.Value;
            tId.Set(request.id);
            if (tId.Z != mapZoom || tId.X < bounds.West || tId.X >= bounds.East || tId.Y < bounds.North || tId.Y >= bounds.South)
            {
                request.Cancel();
                requestHandler.RemovePending(node);
                requestedTiles.Remove(request.id);
            }
            node = next;
        }
    }