码迷,mamicode.com
首页 > 数据库 > 详细

MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite

时间:2014-08-18 15:53:12      阅读:412      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   java   使用   os   

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

       bubuko.com,布布扣

同样用谷歌或百度地图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数据库里面读取瓦片数据了。

bubuko.com,布布扣

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

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

 



MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite,布布扣,bubuko.com

MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite

标签:android   style   blog   http   color   java   使用   os   

原文地址:http://www.cnblogs.com/i-gps/p/3919475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!