linux(ubuntu)下的tippecanoe编译及使用的探索

版权声明: https://blog.csdn.net/zxzfcsu/article/details/80836277

作为我的第一篇博客,也是我的写博客的探索了偷笑

另外,有使用docker的童鞋可以直接查看[三、4、]


一、安装win7 + linux(ubuntu)

       教程在网上搜,别用最新版本,用16.0.4

       注意事项:ultraISO写镜像文件时什么都不用动,按默认设置来

                        注意查看电脑使用U盘引导启动时的启动项是lagacy还是uefi模式


二、编译tippecanoe

1、安装git

2、git clone https://github.com/mapbox/tippecanoe.git
3、解决fatal error:sqlite3.h错误
      sudo apt-get install libsqlit3-dev
4、解决fatal error:zlib.h错误
      sudo apt-get install zlib1g-dev
5、cd tippecanoe

      make

      sudo make install

如果安装中出现了一些问题,请参看下面的“问题和解决方法”部分。

如果没有问题,到此tippecanoe的安装就已经完成了,接下来就是tippecanoe的使用了。


三、使用tippecanoe

       在这里我只写一下我的见解和用法,详细可参考https://github.com/mapbox/tippecanoe

       或中文版翻译https://blog.csdn.net/wan_yanyan528/article/details/70226123 (不完整)

       

1、刚开始的时候不会用可以使用这条命令:

$ tippecanoe -o out.mbtiles -zg --drop-densest-as-needed in.geojson

       鉴于tippecanoe的文档很长,我个人认为如果不是专门搞这个就不用读了,就使用这条命令吧,如果有特殊需要再去查也不迟。那么下面的[3、]中具体的东西也可以不用读,看一下[2、]就可以了。


2、如何查看out.mbtiles文件,我给大家提供三个方法

     另外,mbtiles文件的格式自己去网上查查吧,是基于sqlite数据库的。

     第一种方法,最简单直接。大家可以在MapboxStudio中注册个账户,然后new tileset把自己的mbtiles文件导进去就可以查看了。这种方法可以直接看到图像,但是不是很好观察文件特性。

     第二种方法,不太复杂不太好理解但是易于观察。因为mbtiles格式实质上就是sqlit3的一种数据库,所以自然可以使用数据库管理软件查看,我使用的是Navicat Premium12。直接建立连接就ok了,然后就可以查看到tiles的缩放级别以及图片(虽然是一堆乱码)了。

     第三种方法,稍微复杂也是看图像的方法。使用的是mapbox自己写的mbview,它的口号就是"View mbtiles locally",那么这种方法需要使用node.js来查看,具体怎么用看它的文档,反正不难。但是有一点我要提醒大家注意:在调用

export MAPBOX_ACCESS_TOKEN='pk.0000.1111' # replace value with your mapbox public access token

时会发生错误,我搞了一会没发现怎么解决(如果有解决了的同学请告诉我一声哈,谢谢微笑),索性就在源文件中直接加上了自己的TOKEN,这样之后就不需要再调用这个语句了,可以直接运行。


3、有关于tippecanoe的Geojson的扩展,在这里稍微一说,也可以再官方文档中看到

    Tippecanoe定义了一个GeoJSON扩展,大家可以使用该扩展指定要生成的矢量图集中包含单个要素的最小和/或最大缩放级别,另外大家也可以在其中对图层进行命名。实例代码如下:

{
    "type" : "Feature",
    "tippecanoe" : { "maxzoom" : 9, "minzoom" : 4, "layer" : "streets" },
    "properties" : { "FULLNAME" : "N Vasco Rd" },
    "geometry" : {
        "type" : "LineString",
        "coordinates" : [ [ -121.733350, 37.767671 ], [ -121.733600, 37.767483 ], [ -121.733131, 37.766952 ] ]
    }
}

4、有关于使用docker

没有安装docker的想要安装并使用,推荐一个较新的博文教你安装

https://blog.csdn.net/BingZhongDeHuoYan/article/details/79411479

对于已经安装了docker,并且想要使用的,运行以下命令:

$ docker build -t tippecanoe:latest .
$ docker run -it --rm \
  -v /tiledata:/data \
  tippecanoe:latest \
  tippecanoe --output=/data/output.mbtiles /data/example.geojson

四、过程中遇到的一些问题和解决方法(附图)

1、tippecanoe  make命令之后的截图我也贴出来吧



2、当使用make install命令时发生了意外,具体见下图


直接执行make install命令会发现权限出了问题,不能够创建文件夹。既然用户的权限不够,自然想到了使用root权限来解决问题,具体如下图


在这里使用了sudo -i命令以取得root权限,但是却进不去tippecanoe 文件夹。没办法只好使用exit命令退出root,试着使用另一种方式解决问题,具体如下图:


那么我们在make install前加上了sudo来执行,果然成功了,sudo在其他命令中用了很多次,但是不知道是什么意思,来到这里就恍然大悟了,就是给予用户root权限的意思。


3、另外我再给大家贴一个简单的实例

     我在网上找了一段Geojson格式的台湾的边界图,并以此为示例展示一下。

{"type":"Feature","properties":{"id":34,"name":"台湾","density":640.05},"geometry":{"type":"Polygon","coordinates":  
[[[121.63599694100014,25.222805080000114],[121.71851647200015,25.15200429900011],[121.89283287900003,25.113674221000167],[121.9057723320002,24.95010000200014],[121.82349694100014,24.854925848000164],[121.81495201900032,24.644354559000192],[121.85596764400032,24.550523179000123],[121.78003991000003,24.43268463700008],[121.77271569100003,24.30923086100006],[121.66285241000014,24.193101304000038],[121.60743248800014,24.07684967700004],[121.62891686300009,24.026190497000158],[121.52149498800031,23.658677476000094],[121.46216881600026,23.34300364800015],[121.4088647800001,23.254584052000126],[121.40007571700005,23.145493882000153],[121.29957116000003,22.95917389500019],[121.19027754000001,22.843166408000144],[121.14144941500001,22.741766669000185],[121.02100670700008,22.647894598000136],[120.9482528000002,22.52680084800005],[120.87501061300014,22.289252020000134],[120.87924238400001,22.055812893000052],[120.84156334700009,21.925482489000103],[120.70435631600014,21.98139069200016],[120.69695071700016,22.113226630000156],[120.62126712300017,22.29507070500017],[120.51197350400025,22.42475006700016],[120.33122806100027,22.51972077000019],[120.17554772200015,22.88410065300016],[120.17025800900024,23.013373114000046],[120.05941816500012,23.151027736000174],[120.1301491600002,23.360960244000154],[120.12426153300032,23.520020550000083],[120.18921959700026,23.774807033000116],[120.29224694100003,23.911932684000192],[120.34009850400014,24.02179596600007],[120.4931746750002,24.23065827000005],[120.57081139400032,24.404933986000202],[120.64893639400009,24.48387278900023],[120.70215905000032,24.60700104400013],[120.84750410200013,24.710842190000108],[120.90235436300031,24.836818752000056],[121.05933678500003,25.050238348000164],[121.37875410200007,25.157945054000038],[121.43628991000026,25.24144114800012],[121.53972415500004,25.28742096600007],[121.63599694100014,25.222805080000114]]]}}]} 

大家可以直接把这些复制下来保存在文件中,我保存的文件名为taiwan.json,下面我们来看一下转化过程


这条语句是最简单的使用方式,我大概给大家讲一下

tippecanoe -o [输出文件path+name] -zg --drop-densest-as-needed [输入文件path+name]

-o 也可以用 -output来代替

-z 指的是瓦片的最高缩放级别(默认值是14),可以自定义为-z12等等

-zg是-z的一种特殊形式,指的是由程序根据要素分布自动估算最大级别

--drop-densest-as-needed是指由程序根据缩放级别自动判断来进行舍弃一些元素(抽稀)


欢迎大家积极讨论、指正补充!

猜你喜欢

转载自blog.csdn.net/zxzfcsu/article/details/80836277