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

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做的一个演示程序的截图:


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

时间: 2024-10-12 02:57:25

MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite的相关文章

谷歌地图,国内使用Google Maps JavaScript API,国外业务

目前还是得墙 <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>Simple markers</title> <style> html, body

google map javascript api v3 例子

之前一直用百度map,但如果是国外的项目就需要用google地图.由于在国内屏蔽了google地图的服务,因此调用的是一个国内地址(开发用).这个地址没有用key,语言设置也还是中文的. 备注:网上很多国内的例子还是用v2的接口,差异还是很大的,v3的接口感觉更加接近js的风格,很多参数都直接是json. 例子中实现了google几个核心类的主要功能,包括: 1.在初始化时,定位到正向解析地址,这里是定位到自由女神像: 2.在地图中间位置初始化一个可拖拽的图标,绑定拖拽结束时间,结束后通过地址逆

Android # 图片自动适配屏幕,APK反编译详解,Google Maps Android API,Keytool

本文主题:(图片缩放)自动适配屏幕,APK反编译详解,Google Maps Android API,Keytool  (图片缩放)自动适配屏幕支持缩放旋转,自动居中的imageview http://deanandbai-gmail-com.iteye.com/blog/1850329 apk反编译工具 http://pan.baidu.com/s/1qWFcueC Android APK反编译详解 http://blog.csdn.net/ithomer/article/details/67

Google Maps API显示地图的小示例

来源:http://www.ido321.com/1089.html 效果(新版Firefox中测试): 代码: <!DOCTYPE> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Google Map</title> <script type="te

Google Map API V3开发(2)

3 Google Map API 简介 Google 地图 API 免费提供给用户并且适用于所有网站.Google 地图 API 使您能够使用 JavaScript 将 Google地图嵌入自己的网页中.API 提供了大量实用工具用以处理地图(正如 http://ditu.google.com 网页上的地图),并通过各种服务向地图添加内容,从而使您能够在您的网站上创建功能强大的地图应用程序. 4 帮助资源 ?Google Maps JavaScript API v3 ?中文页面:https://

Google Map API V3开发(5)

11 库 ?  AdSense Library ?  绘图库 ?  几何图形库 ?  Panoramio 图层(库) ?  地方信息库 ?  天气和云况图层(库) 几何图形库 Google Maps JavaScript API V3 几何图形库提供了一些实用程序函数,以便计算地球表面的几何数据.该库包含以下三个命名空间: spherical,其中包含球面几何图形实用程序,可用于通过纬度和经度计算角度.距离和面积. encoding,其中包含一些实用程序,可用于根据编码折线算法对折线路径进行编码

google maps js v3 api教程(1) -- 创建一个地图

原文地址 google maps javascript官方文档:https://developers.google.com/maps/documentation/javascript/ 在创建地图之前,我们进入 Google Developers Console创建一个key,用于我们开发地图的身份验证(当然,没有key也可以进行接下来的教程) 创建一个简单的地图: <!DOCTYPE html> <html> <head> <title>Simple Ma

Creating a Store Locator with PHP, MySQL &amp; Google Maps(保存地图坐标 经纬度方法 google mysql)

Google Geo APIs Team August 2009 This tutorial is intended for developers who are familiar with PHP/MySQL, and want to learn how to use Google Maps with a MySQL database to create a store locator-type app. After completing this tutorial, you will hav

Google 地图 API V3 之 叠加层

叠加层概述 叠加层是地图上与纬度/经度坐标绑定的对象,会随您拖动或缩放地图而移动.叠加层表示的是“添加”到地图中以标明点.线.区域或对象集合的对象. Maps API 包含以下几种叠加层: 地图上的单个位置是使用标记显示的.标记有时可显示自定义的图标图片,这种情况下标记通常被称为“图标”.标记和图标是 Marker 类型的对象.(有关详情,请参阅下面的标记和图标.) 地图上的线是使用折线(表示一系列按顺序排列的位置)显示的.线是 Polyline 类型的对象.(有关详情,请参阅折线.) 地图上的