Avalonia跨平台入门第四十二篇之离线深色地图

前面使用WPF加载深蓝底图效果;今天再次再Avalonia下玩一下离线的加载深色底图:

1、最初瓦片的下载,开源上随便可以找到:

0f4cd29fd4a1f906927962d66008b16a.png

2、循环遍历文件夹进行深色处理:

e42667c854ae319fc6b234c36e95be9e.png

3、为了跨平台下咱们使用SkiaSharp来处理:

9340ff6449957628f4003c40880a54c4.png

4、插入到本地的Sqlite数据库中:

RetryPolicy.Execute(() =>
{
    using(var db = new SqlSugarClient(new ConnectionConfig()
    {
        ConnectionString = connectionString,
            DbType = DbType.Sqlite,
            IsAutoCloseConnection = true,
    }))
    {
        var tile = new Tile
        {
            ZoomLevel = zoomLevel,
            TileColumn = tileColumn,
            TileRow = tileRow,
            TileData = imageBytes
        };
        db.Insertable(tile).ExecuteCommand();
    }
});

5、从本地缓存数据库中获取:

public async Task < byte[] > GetTileAsync(int x, int y, int zoom)
{
    var tile = await db.Queryable < Tile > ().Where(t => t.zoom_level == zoom && t.tile_column == x && t.tile_row == y).SingleAsync();
    return tile ? .tile_data;
}

6、在X86的Linux系统下运行效果:

7、在RK3568下运行效果:

d1b57e249d34858e8572375b3ad5ce7c.jpeg最终简单的效果先这样吧321b5168a5fff29d445ffa93d9f5e00a.png;以后有时间的话,可以再去摸索一下更复杂的效果c32ef7a1e3bb1cc9401937f81e9623d7.png;编程不息、Bug不止、无Bug、无生活5adc423add4543d21c879291437de76f.png;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值