importToMbtiles
import sqlite3, sys, logging, time, os, json, zlib, re
'''
MapDBImporter-latest -f png -mName "World Light" -mDescription "A simple, light grey world map" -s "F:\google\map\zoom" -d "F:\google\map\mbtiles.sqlite"
'''
#mbtiles_file = r"F:\\google\\map\\mbtiles.sqlite"
mbtiles_file = r"D:\\mbtiles.sqlite"
conn = sqlite3.connect(mbtiles_file)
cur = conn.cursor()
'''
cur.execute("create table tiles ( zoom_level integer, tile_column integer, tile_row integer, tile_data blob); ")
cur.execute("create table metadata(name text, value text);")
cur.execute("CREATE TABLE grids (zoom_level integer, tile_column integer, tile_row integer, grid blob);")
cur.execute("CREATE TABLE grid_data (zoom_level integer, tile_column integer, tile_row integer, key_name text, key_json text);")
cur.execute("create unique index name on metadata (name);")
cur.execute("create unique index tile_index on tiles(zoom_level, tile_column, tile_row);")
'''
'''
name = "format"
value = "png"
cur.execute('insert into metadata (name, value) values (?, ?)', (name, value))
name = "name"
value = "world"
cur.execute('insert into metadata (name, value) values (?, ?)', (name, value))
name = "description"
value = "Metadata Information"
cur.execute('insert into metadata (name, value) values (?, ?)', (name, value))
name = "version"
value = "3"
cur.execute('insert into metadata (name, value) values (?, ?)', (name, value))
conn.commit()
#
'''
#cur.execute('delete from tiles')
def getDirs(path):
return [name for name in os.listdir(path) if os.path.isdir(os.path.join(path, name))]
directory_path = r"E:\\google\\en\\map"
count = 0
for zoomDir in getDirs(directory_path):
print("start level: " + zoomDir)
z = int(zoomDir)
for columnDir in getDirs(os.path.join(directory_path, zoomDir)):
x = int(columnDir)
for current_file in os.listdir(os.path.join(directory_path, zoomDir, columnDir)):
file_name, ext = current_file.split('.', 1)
y = int(file_name)
f = open(os.path.join(directory_path, zoomDir, columnDir, current_file), 'rb')
file_content = f.read()
f.close()
#
cur.execute("insert into tiles (zoom_level, tile_column, tile_row, tile_data) values(?, ?, ?, ?);", (z, x, y, sqlite3.Binary(file_content)))
count = count + 1
if count > 1500:
count = 0
conn.commit()
conn.commit()
conn.commit()
print("finish level: " + zoomDir)
conn.commit()
conn.commit()
conn.close()
importToMbtiles的更多相关文章
随机推荐
- Jenkins系列之一——初识
Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 功能 Jenkins功能包括 ...
- logstash grok 内置正则
参考地址:https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns USERNAME [a-zA-Z0-9._-]+ ...
- CentOS+Nginx+Supervisor部署ASP.NET Core项目
对.Net Core的学习和实践,已经进行了一年多的世间,截止目前,微软已经发布.Net Core2.1,关于.NetCore的应用部署的文章比比皆是.今天借此,回顾下.net core环境的部署过程 ...
- js把文本字符串转换为文件并下载
### 兼容性没有怎么处理啊 exportRaw('text.txt','123123123') function fakeClick(obj) { var ev = document.createE ...
- Linux 学习手记(1):命令行BASH的基本操作
1. Shell 是什么 Shell(壳)是用户与操作系统底层(通常是内核)之间交互的中介程序,负责将用户指令.操作传递给操作系统底层. Shell一般分为:图形化Shell(GUI).命令行Shel ...
- go sync.once用法
欢迎关注go语言微信公众号 每日go语言 golang_everyday sync.once可以控制函数只能被调用一次.不能多次重复调用.示例代码: package main import ( &qu ...
- postman传递对象到spring controller的方式
1.spring Controller @RestController @RequestMapping(value = "/basic/task") public class Ta ...
- phpStorm使用技巧总结
工欲善其事,必先利其器. 拥有一个好的工具不仅可以事半功倍,而且也令人神清气爽. 在编辑器上,我所走过的路是这样的:notepad(对,就是最原始的WIN下的note) -> editplus ...
- 解决springmvc中使用redirect跳转后https变为http
方法一:配置文件修改ViewResolver的 redirectHttp10Compatible 属性,这个属性是为了兼容 http1.0协议. <bean id="viewResol ...
- Python NumPy学习总结
一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...