zoukankan      html  css  js  c++  java
  • MBTiles 离线地图演示

           MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android、IPhone等智能手机的离线地图存储。详情请参考:MBTiles移动存储简介
           在WEB地图介绍中我们看到,瓦片是参照了他们的z/x/y 形式坐标,在磁盘存储上,他们通常存储在以z、x为名字上的目录中,这样就有一个瓦片文件路径是0/0/0.png。

           

    同样用谷歌或百度地图JS API很方便调用。但是有个缺点就是文件多了,占用磁盘空间比实际文件大很多,产生很多文件碎片,移动起来非常麻烦,速度慢。MBTiles提供了这样一个功能:瓦片表,tiles:

    复制代码
    sqlite> SELECT * FROM tiles;
    
    zoom_level | tile_column | tile_row | tile_data
    5          | 13          | 23       | [PNG data]
    5          | 13          | 24       | [PNG data]
    5          | 14          | 23       | [PNG data]
    5          | 14          | 24       | [PNG data]
    5          | 15          | 25       | [PNG data]
    复制代码

    这张表很容易查询一张特定的瓦片:比如查询级别为 8,列号为116,行号为192的瓦片数据:

    sqlite> SELECT tile_data FROM tiles WHERE zoom_level = 8 AND tile_column = 116 AND tile_row = 192;
    
    [PNG data]
    tile_data 为二进制的流文件,不管用在桌面程序还是Android、iOS应用都可以很方便的从Mbtiles数据库里面读取瓦片数据了。

    以下是我用Delphi做的一个演示程序的截图:




    作者: i-gps 
    出处: http://www.cnblogs.com/i-gps/ 
    欢迎探讨交流Google Maps相关技术,QQ:64445322 QQ群:242284018 
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    #3232. 「POI2019 R1」Najmniejsza wspólna wielokrotność
    bzoj4129 Haruna's Breakfast
    uoj:【UNR #3】配对树
    #3409. 小P的生成树(mst)
    #1790. 小A的树
    #2689. 异或树(tree)
    #4740. 校运会
    #4738. 迷惑数字统计
    #4742. 寻找字符串
    dtoj1825. 放棋子(chess)
  • 原文地址:https://www.cnblogs.com/Jeely/p/11175846.html
Copyright © 2011-2022 走看看