Ubuntu16.0.4 TileMill安装部署及简单使用

声 明1 : 本人才疏学浅,用郭德纲的话说“我是一个小学生”,如有错误,欢迎讨论,请勿谩骂^_^。
声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
这块我个人创建了一个Mapnik的QQ群,感兴趣的朋友可以加进来交流讨论【Mapnik】

简介

TileMill is a modern map design studio。简单来说,TileMill就是一个地图设计器,简化配图设计的复杂度。
GitHub地址:传送门
帮助文档:传送门
CartoCSS:传送门
CartocSS维基百科:传送门

环境要求

  • Ubuntu 10.04+ (only tested with 18.04.2)
  • Node 8.11.x+ (may work on earlier version, not tested)
  • 2 GB memory
  • A modern browser (Chrome, Firefox)
  • Internet connection for remote datasources

准备工作

更换镜像源为阿里云镜像源,方便后面的下载Node.js引用的包。(这块可以参考我之前的文章),这块如果你有比较好用的梯子或者外国服务器的话,可以略过此步。

安装

  1. 安装Node.JS,这块建议使用nvm安装。离线安装的话,参考之前的文章:传送门
    安装nvm

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
    

    更新一下

    source ~/.profile
    
  2. 安装gcc

    sudo apt-get install gcc g++ make
    
  3. 安装git并下载TileMill仓库代码

    # 安装git
    sudo apt install git
    # 安装TileMill
    git clone https://github.com/tilemill-project/tilemill.git
    cd tilemill
    # 使用下面官方提供的步骤,下载mapnik那一步会出错,让你安装到怀疑人生为止
    nvm install lts/carbon
    nvm use v8.15.0
    npm install
    # 启动服务(这句可不执行,后面会执行配置运行)
    npm start
    

    闭坑指南:
    ①这块建议使用node.js 6.9.4这个版本,用别的版本下载mapnik可能会失败,具体参考这里。据说8.x版本好像也可以,感兴趣的阔以试试

    nvm install 6.9.4
    nvm use 6.9.4
    

    ②实际离线安装部署的时候,建议使用的node.js版本和上面的保持一致,否则启动服务可能会失败。
    ③下载安装的时候,最好是配置个代理或者修改hosts啥的
    上一张安装成功的图,真心不容易啊,下载速度巨慢!Ubuntu16.0.4 TileMill安装部署及简单使用_第1张图片

  4. 启动TileMill服务

    ./index.js --server=true --listenHost=0.0.0.0 --coreUrl=${_SERVER_IP_}:20009 --tileUrl=${_SERVER_IP_}:20008
    

    如:./index.js --server=true --listenHost=0.0.0.0 --coreUrl=192.168.80.218:20009 --tileUrl=192.168.80.218:20008
    ${SERVER_IP} 请替换为实际的服务器IP,然后在浏览器端输入 ${SERVER_IP}:20009 就可以访问TileMill了。如果一些顺利的话,会看到如下的场景:
    Ubuntu16.0.4 TileMill安装部署及简单使用_第2张图片

  5. 后台运行(可选)
    如果想后台运行,建议安装screen。关于screen的使用参考这篇博文linux screen工具

    apt install screen
    

    使用方法

    screen -S yourname -> 新建一个叫yourname的session
    screen -ls -> 列出当前所有的session
    screen -r yourname -> 回到yourname这个session
    screen -d yourname -> 远程detach某个session
    screen -d -r yourname -> 结束当前session并回到yourname这个session
    

中文支持

参考博文:搭建开源地图服务(二) -TileMill的安装配置
1.下载字体
2. 解压字体
3. 拷贝解压后的字体到/usr/share/fonts/指定的目录

# 比如在/home/yh/Downloads目录下进行如下操作,下载字体、解压字体、拷贝字体到指定目录
mkdir noto 
cd noto 
# 下载字体地址【https://www.google.com/get/noto/】,下面这句命令已经下载不了,仅供示意
wget https://www.google.com/get/noto/pkgs/Noto.zip 
unzip Noto.zip 
cp -R ./noto /usr/share/fonts/noto

安装成功后,重启一下TileMill服务器,这样就可以在WEB界面上选择,设置新安装的字体了。

简单使用

  1. 新建工程
    Ubuntu16.0.4 TileMill安装部署及简单使用_第3张图片
  2. 添加数据,这块我以postgis为例
    Ubuntu16.0.4 TileMill安装部署及简单使用_第4张图片
    # 图层ID,这块我输入的是building,后面配置符号是会使用
    # 数据库连接信息
    host=192.168.90.110 port=5432 user=postgres password=postgres dbname=osm
    # 添加图层SQL,这块您也可以只保留您需要的字段,不建议使用*
    select gid,geom from gis_osm_buildings_a_free_1
    # 设置key Field,这块我的是gid
    # 设置Geometry Field,这块我的是geom
    # 设置Extent,这块我选择的是默认的,这块您也可以指定好具体的范围
    # 设置坐标系SRS,这块我选择的WGS84
    
  3. 配置符号
    在右侧的style.mss文件中,配置符号,配置完点击右上角的save按钮生效。

    style.mss文件内容如下所示:
    Map {
      background-color: #b8dee6;
    }
    
    #building {
      ::outline {
        line-color: #85c5d3;
        line-width: 2;
        line-join: round;
      }
      polygon-fill: rgb(255,255,0);
    }
    #water {
      ::outline {
        line-color: #85c5d3;
        line-width: 2;
        line-join: round;
      }
      polygon-fill: rgb(0,255,255);
    }
    

这块的颜色支持输入以下几种格式:
- rgb格式,如 rgb(128,128,128)
- argb格式,如rgba(128,128,128,1)
- 16进制颜色,如#ffff。(RGB颜色值与十六进制颜色码转换工具)
5. 导出xml格式
Ubuntu16.0.4 TileMill安装部署及简单使用_第5张图片

符号化

标注

可以使用Markers

线

条件符号化

绘制顺序

TileMill的图层顺序可以在左侧的图层列表中看到,跳转图层顺序可以将鼠标移动到几何图标处移动图层。
Ubuntu16.0.4 TileMill安装部署及简单使用_第6张图片

  1. 图层:“较高”图层覆盖“较低”图层。
  2. 样式表从左到右应用。
  3. 样式表中的规则从上到下应用。

Cartocss(.mml)转到到mapnik格式(.xml)

参考:https://wiki.openstreetmap.org/wiki/CartoCSS

cd mapbox-tilemill
./bin/carto ./files/<your project>/<your project>.mml > mapnik.xml

参考资料

  1. Walkthrough: Creating tiles with Mapnik using TileMill
  2. TileMill 快速入门

你可能感兴趣的:(Linux,快显,Mapnik,快显)