terrain-classic, 雄蕊地形风格经典CartoCSS口

分享于 

7分钟阅读

GitHub

  繁體 雙語
World-wide CartoCSS port of Stamen's classic terrain style
  • 源代码名称:terrain-classic
  • 源代码网址:http://www.github.com/stamen/terrain-classic
  • terrain-classic源代码文档
  • terrain-classic源代码下载
  • Git URL:
    git://www.github.com/stamen/terrain-classic.git
    Git Clone代码到本地:
    git clone http://www.github.com/stamen/terrain-classic
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/stamen/terrain-classic
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    三维地形经典

    雄蕊地形风格经典CartoCSS口。

    雄蕊地形风格最初是在 2011年作为雄蕊Citytracking的一部分,由骑士基金会资助。 可以在这里找到旧的存储库,例如 historical,用于历史。

    最初的地形样式只覆盖了美国。 作为一个新骑士基金会的一部分,我们扩大了地形以覆盖整个世界。 还支付了一些完全不同的新地形样式的原型,以避免混淆我们的旧风格"地形经典"。"

    Terrain screenshot

    目前地形经典的大部分开发过程都是基于碳粉车 repo

    开发

    先决条件

    • PostgreSQL
    • PostGIS @2.2.0
    • Node.js --version 0.10 *
    • GDAL
    • TileMill 1 @ master ( 这包括最新的Mapnik ): github.com/mapbox/tilemill
    • Imposm 3,其中包含自己的依赖项: goleveldbprotobuf

    如果你使用的是最新版本的node,则 *NOTE:版本管理器脚本有帮助。 这很重要,因为 TileMill 1 @master 只在 node --version 0.10上运行。

    在 OS X 上,使用 Homebrew的安装如下所示:

    
    brew install postgis gdal node go leveldb protobuf pv
    
    
    
    # follow instructions to start postgresql
    
    
    
    mkdir -p/tmp/imposm
    
    
    cd/tmp/imposm
    
    
    export GOPATH=`pwd`
    
    
    git clone https://github.com/omniscale/imposm3 src/imposm3
    
    
    go get imposm3
    
    
    go install imposm3
    
    
    
    # bin/imposm3 is your new binary; either add $GOPATH/bin to your PATH or copy
    
    
    # it to/usr/local/bin (or similar)
    
    
    
    

    地形经典本身

    • 克隆这里 repo
    • 运行 make link 以将项目链接到TileMill项目目录
    • 运行 make db/shared 获取和转换自然地球和OSM海岸线数据
    • 运行 make db/CA ( 或者类似;参见 Makefile 中的PLACES 列表,获取已经注册摘录的列表并根据需要展开)。
    • 运行 make 以生成 project.mml 文件。 ( 也可以使 terrain-classic-backgroundterrain-classic-lines 或者 terrain-classic-labels 对变体样式进行处理)
    • 通过从 TileMill repo 运行 npm start 启动 TileMill
    • 打开 http://localhost:20009/#/project/terrain-classic

    make db/<place> 将写入 .env ( 使用类似 postgres:///terrain的格式,其中 terrain 是数据库名称) 中指定的数据库。 如果连接时遇到问题,请尝试添加凭据 比如 postgres://user:password@localhost/terrain ( 它将使用不带密码的$USER )。 如果没有,请检查 pg_hba.conf 以确保正确配置了访问。

    ( 我们主要开发 OS X,其中来自 Homebrew的PostgreSQL工作在开箱即用

    注释: 对项目设置的更改( 例如。 在TileMill中 .mml 文件不是 .mss 样式表将不会保存更改。 要进行更改,编辑相关的.yml 文件并运行 make [variant] 以生成TileMill所读取的project.mml

    为了使用山体阴影覆盖测试地形样式,提供了 tessera.json 配置。 使用 npm install tessera 安装 tessera,然后在地形经典目录中运行 npm start。 打开 http://localhost:8080/ 以查看与开放地形hillshades合成的terrain-classic 样式。

    使用side-by-side查看器进行测试( 试验)

    在 根目录 运行中 npm install && npm start 它将启动tessera在 http://localhost:8080 运行。

    然后在 side-by-side 文件夹中,运行一个简单的服务器,例如 python -m SimpleHTTPServer。 然后转到 http://localhost:8000 ( 或者web服务器运行的任何端口) 以查看side-by-side查看器。

    常见问题解答

    Makefile 有什么问题? 为什么这么复杂?

    大多数是魔术,可以能是( 应该是) 简化了 ! 考虑另一个问题,"生成数据"方法( 它实际上使用了 make )。

    这里的目标是为引导项目提供一个幂等的过程,这些项目使用的附加依赖性很少。 make 是这个问题的老解决方案,尽管它采用了更多的文件聚焦方法。 换句话说,它试图有效地封装其他复杂和容易出错的操作。

    这里的Makefile 尝试复制 relative的make 行为以使用数据库表重新生成文件。 换句话说,如果Postgres关系已经存在,它将被保留为。 如果它不存在( 已经删除或者还没有创建),它将按需求创建。

    为什么我必须安装 pgexplode

    libpq 支持许多 环境变量,可以用于避免重复( 避免错误)。 但是,连接信息的每个组件是独立的,并且更容易在 URI ( 例如 ) 中进行编码。 DATABASE_URL )。pgexplode 知道 libpq 环境变量 并将展开 DATABASE_URL s 组件( 它比管理多个值并为 imposm3 和其他工具构建一个URL要简单得多)。


    STA    style  CAR  wid  terr  
    相关文章