标签: mbtiles

将两个mbtiles文件连接在一起

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

有没有人知道将两个mbtiles文件连接在一起的简单程序?

sqlite mbtiles

4
推荐指数
2
解决办法
2456
查看次数

Mapbox:如何避免当前缩放级别不可用的tileset的JavaScript错误?

我正在使用Mapbox GL JS并从我的Mapbox帐户加载tileset图层.其中一些图块集图层仅适用于缩放级别10到15.

我的地图的默认缩放级别是5,当我加载地图时,我收到一个JavaScript控制台错误,说该tileset是404ing:

在此输入图像描述

有什么方法可以避免这种情况吗?我不想一直重新创建tileset来缩放5级,因为它会不必要地增加它的大小.

我不认为控制台错误导致Chrome出现任何问题,但我不知道它是否会在其他浏览器中出现.

mapbox mbtiles mapbox-gl-js

3
推荐指数
1
解决办法
1040
查看次数

如何将GeoJSON转换为vector.pbf(Protobuf)?

我的GeoJson文件很大,我需要将其转换为Mapbox可以加载的矢量格式。我需要一个外部文件,因此无法使用Mapbox Studio上载和转换数据。

目前,我找到了https://github.com/mapbox/tippecanoe工具,但是它将GEoJSON转换为MBTiles(SQLite格式)。我认为不能在我的地图上使用它。正如我从Mapbox服务的所有示例中看到的那样-它使用XXX.vector.pbf(protobuf)格式(既小又快)。所以问题是-如何从原始的GeoJSON获取Protobuf矢量文件?谢谢!

type-conversion protocol-buffers mapbox mbtiles mapbox-gl-js

3
推荐指数
1
解决办法
1784
查看次数

如何让mbtiles背景透明?

我正在使用tilemill来生成mbtiles.有谁知道如何使mbtiles背景透明?

transparent mapbox tilemill mbtiles

2
推荐指数
1
解决办法
1930
查看次数

OSMdroid 通过 ListView 加载多个离线 MBTIles

我正在将 OSMdroid 与离线 MBTiles 一起使用。我需要能够添加用户从ListView. ListView窗户很容易。但是,我需要帮助根据从ListView. 我的 MBTiles 从 SDCard 加载。

import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RelativeLayout;

public class OfflineMapDemoActivity extends Activity {

    private String MapName;

    public String getMapName(){
        return MapName;
    }
    public void setMapName(String s){
        MapName = s;
    }

    // layout
    private RelativeLayout mapLayout;

    // MapView
    private MapView mapView;
    private MapController mapController;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        // init Layout
        setContentView(R.layout.main);
        this.mapLayout = (RelativeLayout) findViewById(R.id.mapLayout);

        // …
Run Code Online (Sandbox Code Playgroud)

android google-maps osmdroid mbtiles

2
推荐指数
1
解决办法
1708
查看次数

在 Google Map V2 上加载 MBtiles

我使用 MapTiler 创建了一个 MBtile 文件https://www.maptiler.com/

我可以使用 OpenStreetMap 很好地加载这个 MBtile

map.setTileSource(new XYTileSource("MyMap", 0, 18, 256, ".jpg", new String[] {}));
Run Code Online (Sandbox Code Playgroud)

但我无法使用谷歌地图加载它(使用我找到的唯一库,https://github.com/cocoahero/android-gmaps-addons

有人知道更好的库来使用 Google 地图加载 Mbtiles 吗?

android google-maps mbtiles

2
推荐指数
1
解决办法
2654
查看次数

`require':无法加载此类文件——rack/handler (LoadError)

我不是 Ruby 人,所以这可能是一个 101 问题。我只是想使用一个用 Ruby 编写的实用程序。

我正在使用tilemaker,它是openstreetmap生态系统中的一个实用程序。它以 mbtiles 格式创建图块。该存储库附带了一个简单的实用程序,可以在浏览器上提供图块以测试您创建的文件。这个实用程序是用 Ruby 编写的,也是我遇到的问题。

该存储库的自述文件包含服务器实用程序的说明。安装说明如下:

(如果您还没有安装它们,则需要安装 Ruby 和运行演示服务器所需的 gem。例如,在 Ubuntu 上,sudo apt install sqlite3 libsqlite3-dev ruby ruby-dev然后安装sudo gem install sqlite3 cgi glug rack。)

我使用的是 Debian 11(在 Qubes 上,所以我不介意按照他们的建议运行 sudo gem install)。我希望这与 Ubuntu 足够接近,但也许这与问题有关。

这就是我得到的:

$ ruby server.rb ~/countries-raster.mbtiles 
Starting local server
Traceback (most recent call last):
        3: from server.rb:22:in `<main>'
        2: from server.rb:118:in `<class:MapServer>'
        1: from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb:85:in `require'
/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb:85:in `require': cannot load such file -- rack/handler …
Run Code Online (Sandbox Code Playgroud)

ruby rack openstreetmap mbtiles

2
推荐指数
1
解决办法
1667
查看次数

使用 Tippecanoe 生成的 mbtile 中的坐标不正确

mbtiles使用 Tippecanoe 生成了一个文件,仅使用-zg--drop-densest-as-needed作为额外参数。我将文件上传到 Mapbox Studio,无论是在 Studio 中还是通过移动应用程序加载图块时,一切都运行良好。

然后我尝试使用 Go 中的一个非常基本的 HTTP 服务器来自托管这些图块。图块从 SQLite 转移到 PostgreSQL 数据库(原因是 Go + PSQL 是应用程序的现有堆栈)。

由于某种原因,这些功能会根据缩放级别而变化。在级别 1 上,本应位于美国的数据位于南极洲,在缩放级别 2 上,数据位于智利海岸附近,等等。唯一正常工作的是级别 0,因为只有一个图块。

我检查了在旧金山缩放级别 11 时 Mapbox 请求的图块:第 327 列,第 791 行。文件中不存在此行/列组合的图块,.mbtiles尽管那里有数据。

除了使用 z/x/y 在数据库中查找 mbtile 之外,还需要对它们执行其他操作吗?或者也许需要在应用程序端配置一些东西?

服务器代码:

row := db.QueryRow(`
    SELECT tile_data FROM tiles
    WHERE
        zoom_level = $1
        AND tile_column = $2
        AND tile_row = $3
    `,
    z, x, y,
)
Run Code Online (Sandbox Code Playgroud)

在安卓上:

map.addSource(
        VectorSource(
                "tiles",
                TileSet("2.2.0", "http://my.local.server:4000/tiles/{z}/{x}/{y}.mvt?key=2448A697EACDDC41432AAD9A1833E")
        ) …
Run Code Online (Sandbox Code Playgroud)

mapbox mbtiles tippecanoe

1
推荐指数
1
解决办法
1462
查看次数