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)); }
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); }
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; } }