Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将两个mbtile文件连接在一起

将两个mbtile文件连接在一起
EN

Stack Overflow用户
提问于 2013-07-19 12:27:33
回答 2查看 2.9K关注 0票数 5

我还没有找到一种方法将两个*.mbtiles文件连接在一起(第一个文件包含从0到16的缩放级别,第二个文件包含缩放级别17)。我使用了不同的sqlite管理器,但不管我如何将database2导出和导入到database1中,我都没有成功-二进制字段总是被严重损坏,以至于无法找回image.png。

有谁知道将两个mbtile文件连接在一起的简单步骤吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-19 12:55:54

如果两个文件具有相同的元数据,并且tiles表实际上是表而不是视图,则只需将其中一个表的数据附加到另一个表中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* open database1 as main database, then: */
ATTACH 'database2' AS db2;
INSERT INTO tiles SELECT * FROM db2.tiles;
票数 6
EN

Stack Overflow用户

发布于 2014-06-11 13:25:44

在我的例子中,@CL有一个错误。解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Error: cannot modify tiles because it is a view

所以我的数据库的模式是不同的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> .schema

CREATE TABLE grid_key (
    grid_id TEXT,
    key_name TEXT
);
CREATE TABLE grid_utfgrid (
    grid_id TEXT,
    grid_utfgrid BLOB
);
CREATE TABLE images (
    tile_data blob,
    tile_id text
);
CREATE TABLE keymap (
    key_name TEXT,
    key_json TEXT
);
CREATE TABLE map (
   zoom_level INTEGER,
   tile_column INTEGER,
   tile_row INTEGER,
   tile_id TEXT,
   grid_id TEXT
);
CREATE TABLE metadata (
    name text,
    value text
);
CREATE VIEW tiles AS
    SELECT
        map.zoom_level AS zoom_level,
        map.tile_column AS tile_column,
        map.tile_row AS tile_row,
        images.tile_data AS tile_data
    FROM map
    JOIN images ON images.tile_id = map.tile_id;
CREATE VIEW grids AS
    SELECT
        map.zoom_level AS zoom_level,
        map.tile_column AS tile_column,
        map.tile_row AS tile_row,
        grid_utfgrid.grid_utfgrid AS grid
    FROM map
    JOIN grid_utfgrid ON grid_utfgrid.grid_id = map.grid_id;
CREATE VIEW grid_data AS
    SELECT
        map.zoom_level AS zoom_level,
        map.tile_column AS tile_column,
        map.tile_row AS tile_row,
        keymap.key_name AS key_name,
        keymap.key_json AS key_json
    FROM map
    JOIN grid_key ON map.grid_id = grid_key.grid_id
    JOIN keymap ON grid_key.key_name = keymap.key_name;
CREATE UNIQUE INDEX grid_key_lookup ON grid_key (grid_id, key_name);
CREATE UNIQUE INDEX grid_utfgrid_lookup ON grid_utfgrid (grid_id);
CREATE UNIQUE INDEX images_id ON images (tile_id);
CREATE UNIQUE INDEX keymap_lookup ON keymap (key_name);
CREATE UNIQUE INDEX map_index ON map (zoom_level, tile_column, tile_row);
CREATE UNIQUE INDEX name ON metadata (name);

因此,您可以这样调整解决方案:

首先按照您想要的方式更新元数据,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlite> UPDATE metadata SET value = '7' WHERE name = 'minzoom';

然后插入瓷砖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sqlite> INSERT OR REPLACE INTO images SELECT * from db2.images;
sqlite> INSERT OR REPLACE INTO map SELECT * from db2.map;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17746079

复制
相关文章
linux系统使用join命令连接两个文件
join的连接操作简言之就是将两个具有相同域的纪录给挑选出来,再将这些纪录所有的域放到一行。
用户5005176
2021/09/08
3K0
简单将ggplot多个图排列在一起
ClonEvol: clonal ordering and visualization in cancer sequencing文献里面CloneEvol包里面boxplot.r函数
用户1680321
2020/03/08
1.5K0
centos8系统使用join命令连接两个文件
join的连接操作简言之就是将两个具有相同域的纪录给挑选出来,再将这些纪录所有的域放到一行。
用户1685462
2021/09/08
5730
docker连接两个容器
序 容器是用来提供服务的,每个容器都是运行一个进程,或许是一个web程序,或许是一个数据库服务,而在每个容器之间都是需要相互访问的,从而在这里构建一个python的程序,一个容器运行python的应用程序,一个容器用来运行redis服务,在应用程序中访问redis,具体架构如下: 运行redis的容器 运行redis的时候,步骤如下: 首先下载到redis的镜像,然后根据镜像运行一个镜像的实例,也就是redis这个实例,在其中需要注意的是,容器对外暴露的端口就是6379端口,从而在主机上对应监听一个
企鹅号小编
2018/02/26
1.5K0
docker连接两个容器
两个蟑螂机器人在一起,能完成什么动作?
加州大学伯克利分校电气工程系和计算机科学系的仿生Millisystems实验室的研究团队曾经开发出了一种3D打印的 爬行式足部行走机器人VelociRoACH,它们形似蟑螂,但是步幅颇快,可谓跑得最快
机器人网
2018/04/13
6050
两个蟑螂机器人在一起,能完成什么动作?
WPF 将 StaticResource 和 ResourceDictionary 放在一起的魔幻行为
本文将记录一些在 WPF 里面,使用 StaticResource 将 ResourceDictionary 玩坏的做法。大家可以放心的是,这些玩法基本只有高级玩家或逗比开发者才会使用到
林德熙
2023/06/23
7440
使用JS将聊天记录聚合在一起
我们在QQ上聊天时,同一分钟的聊天记录会被放在一起展示,当我们发送消息时,每条消息的发送时间都会精确到秒,那么他是如何实现将这些数据按分钟划分到一起的显示的呢?
神奇的程序员
2022/04/10
9350
使用JS将聊天记录聚合在一起
两个tcpclient的连接原理 原
两个tcpclient的连接原理: A发送syn,B因为是client所以发回一个rst ack包,要求断开连接 但是B此时连A发送syn,A会认为是端口重用,此时会返回syn ack包要求重传, B收到syn ack后认为A是服务器返回了,所以发回了ack包,至此三次握手成功
战神伽罗
2019/09/08
8390
C语言 | 将两个字符串连接起来,不用stract
解题思路:首先要有两个键盘录入,实现录入字符串1和字符串2,然后实现拼接,读者看这道例题的时候,可以先想想要是用strcat函数应该怎么写代码,然后可以查看查看strcat的源码,看看底层是怎么写的。
小林C语言
2021/01/22
4.6K0
C语言 | 将两个字符串连接起来,不用stract
springboot集成mybatis+jsp项目结构: pom配置文件如果想将mapper文件和dao层放在一起如下图:将配置文件修改为
项目结构: pom配置文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo
用户5899361
2020/12/07
6070
翻译 | 如何将 Ajax 与 Django 应用整合在一起?
我是一个 Django 和 Ajax 的菜鸟, 最近我在完成一个项目,需要去整合这两门技术. 我认为我清楚两门技术背后的原理了,但尚未找到两者整合的优质解释.
benny
2019/03/07
1.4K0
翻译 | 如何将 Ajax 与 Django 应用整合在一起?
使用stream流连接两个list
生命如同寓言,其价值不在于长短,而在于内容—— 塞涅卡 List<Integer> integerList = Arrays.stream(new int[]{1, 2, 3}).boxed().collect(Collectors.toList()); List<Integer> collect = Stream.concat(integerList.stream(), integerList.stream()).collect(Collectors.toList()); collect.forEa
阿超
2022/08/16
1K0
使用stream流连接两个list
将xml文件转为txt文件
import os import re import sys import glob import xml.etree.ElementTree as ET def xml_to_txt(indir,
hankleo
2020/09/17
2.8K0
2.22 硬连接文件
不能跨文件系统(跨分区),因为不同的文件系统有不同的inode,不同的table目录体系。
运维小白
2022/01/06
5510
Python将两个列表转换为字典
最开始,我是想用2层for循环实现,但是发现太麻烦了。最简单的方法,使用zip()函数即可。
py3study
2020/08/26
5.1K0
怎么将网站内容运营和SEO充分融合在一起?
内容营销和seo是不同的两个概念,但它们又有相同之处。首先seo是搜索引擎技术范畴,包括:rul的选择、关键词选择、标题撰写、文章创作、内容策略、外链建设等等,而内容营销包括的更广泛,包括seo而不限于seo。
蝙蝠侠IT
2021/02/22
5270
怎么将网站内容运营和SEO充分融合在一起?
将Git与Github进行SSH连接
<!--more--> <a href="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=112763915,265947675&fm=26&gp=0.jpg" class="highslide" onclick="return hs.expand(this,{slideshowGroup:'images'})"><img src="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=112763915,265947675&fm=26&gp=0.jpg"></a> # Githu与Github 首先, - `Git`是一款免费、开源的分布式版本控制系统; - `Github`是用`Git`做版本控制的代码托管平台; 用一句话形容这二者的关系:Git是弓,你的代码是箭,Github是靶子。 Git是软件,它可在本地建立仓库,你写的代码的各个版本都可以存着 Github是网上仓库,你写的代码的各个版本都可以存着。 # 安装使用 ## 安装Git 1. 到[Git官网](https://git-scm.com/downloads)下载与你正在使用的操作系统(本文以`windows`为例)相对应的文件。一般地,选择`64-bit Git for Windows Setup`。 2. 安装时注意:勾选添加git到`环境变量`;在Windows Explorer Integration中勾选`Git Bash Here`。其余配置默认即可。 3. 安装完成后(可能需要**注销或重启**),在任意一个文件夹空白处右键,检查是否有`Git Bash Here`的选项。 ## 注册GitHub 到[GitHub官网](https://sqdxwz.com)注册一个账号。这里我以我的Github账号:`WangRongsheng` 为例进行演示。 ## 配置git与github关联 ### 设置邮箱和用户名 打开`Git Bash`(输入命令**均在Git Bash中进行**,以后不再声明),分别输入下列命令(输入一行命令后需要回车,以后不再声明): ```html git config --global user.name "WangRongsheng" git config --global user.email "603329354@qq.com" ``` 下面这一行设置可以增强输出命令的可读性: ```html git config --global color.ui auto ``` ### 用ssh生成公钥 输入: ```html ssh-keygen -t rsa -C "603329354@qq.com" ``` 回车之后会出现如下所示的输出,直接按回车即可: ```html Generating public/private rsa key pair. Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa): (按回车键) Enter passphrase (empty for no passphrase): (按回车键) Enter same passphrase again: (按回车键) ``` 这样密钥文件就生成了,默认在用户目录下,如:`C:\User\xxx\.ssh\` 这个文件夹中。其中的xxx是你的windows用户名。 ### 将公钥添加到`github`中 1. 在`C:\user\xxx\.ssh\`文件夹中找到`id_rsa.pub`这个文件,用文本编辑器(如记事本)打开,复制里面的所有内容。 2. 登陆`github账号`,点击头像旁的`小三角`展开,点击`settings`-`SSH and GPG keys`-`New SSH key`,在`Title`中取一个名字(任意),`key`中粘贴你刚刚复制的内容。然后点击`Add SSH key`即可。 ### 测试是否关联成功 输入: ```html ssh -T git@github.com ``` 出现以下结果即为成功: ```html Hi WangRongsheng! You've successfully authenticated, but GitHub does not provide shell access. ```
王荣胜
2020/03/13
7010
Python将数据写入txt文件_python将内容写入txt文件
readlines() 会把每一行的数据作为一个元素放在列表中返回,读取所有行的数据
全栈程序员站长
2022/11/11
12.5K0
python 合并两个txt文件
合并两个文件,其实只要把文件2的内容追加到文件1中就可以了例如,现有两个文件,file1和file2:file1.txt:123456file2.txt:abcdef代码如下:file1 = 'file1.txt'file2 = 'file2.txt' def merge(file1, file2): f1 = open(file1, 'a+', encoding='utf-8') with open(file2, 'r', encoding='utf-8') as f2: f1.
IT工作者
2022/07/29
2.2K0
点击加载更多

相似问题

将多个mbtile文件合并为一个文件

162

将两个CAF文件连接在一起

11

将两个文件连接在一起(AWK)

32

带有宣传单的mbtile文件

15

无法组合两个不同的mbtile

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文