Giter VIP home page Giter VIP logo

carto_zh-cn's Introduction

CartoCSS中文指南

前言

这是一份根据Mapbox Studio的在线帮助文档TileMill的帮助文档以及CartoCSS语言的开源解释器项目carto的文档(这也是Mapbox官方的CartoCSS Reference链接指向的文档)翻译、整理并适当补充和修订之后的中文版CartoCSS指南与语言参考手册。翻译整理的目的是为了方便越来越多的使用CartoCSS进行制图的中文用户了解这种制图样式语言中各种属性的含义及用法。读这份文档需要具有一些的地理信息系统(GIS)、地图制图学(Cartography)方面的背景知识。由于CartoCSS是为Mapnik而设计的,而且其脚本最终会被解译为Mapnik样式并进行制图渲染,所以如果知道并了解Mapnik的工作原理,那么会对CartoCSS的语法要素及工作机理有更深刻的理解,但这不是使用CartoCSS进行制图所必需的。关于背景知识,可以参考Mapnik项目中的相关文档

看了前面一段,你可能已经被其中出现的除CartoCSS以外的其它几个名词搞晕了。我在这里简单解释一下它们都是什么,以及它们之间是什么关系。

  • Mapnik是一个开源的地图渲染引擎,用C++语言开发,有Python和node.js接口。它的开发可以追溯到2005年,但直到2008年的0.5版本发布之后才真正展现出它的强大——渲染质量高,而且速度很快。Mapnik有一套基于XML的地图样式描述方法,但在描述较复杂地图样式的时候其XML样式也会变得很长很复杂,难以让人类直接阅读和修改,而这恰恰就是后来CartoCSS这种高级地图样式描述语言出现的一个重要原因。
  • Mapbox是一个专注于数字化制图服务的公司,成立于2010年。它是目前能紧紧把互联网、云计算、移动计算和传统的地图制图设计结合起来而且结合的最好的公司之一。目前,它已经网罗了该领域中全世界能数的过来的众多牛人,这其中包括Mapnik的作者Dane Springmeyer,MBTiles的设计者Tom MacWrightJustin Miller,其中Tom MacWright也是CartoCSS的设计者,还有OSRM的作者Dennis Luxen等等,不一而足。目前,Mapbox的发展突飞猛进,产品线逐渐拉长,业务范围向企业级私有空间数据基础设施服务等方向推进。这里要强调Mapbox的一个很重要的特点,就是它维护着大量的开源项目。注意Mapbox的官方网站在**大陆地区是被GFW禁止访问的,所以要了解更多关于它的信息请自备梯子。
  • TileMillMapbox Studio都是Mapbox维护的开源项目,都是跨平台的制图客户端软件,都是用node.js开发的,只是后者是最近发布的,有取代前者的意思,但目前这两个软件都可以使用。在TileMill和Mapbox Studio中进行制图需要使用CartoCSS语言,制好的地图可以导出成MBTiles格式的瓦片数据集,或直接连接Mapbox账号上传到用户自己的账户空间中。
  • carto也是Mapbox维护的一个开源项目,它是将CartoCSS脚本解析成Mapnik XML地图样式的解释器,是用node.js开发的。CartoCSS的语言参考手册就在carto项目的wiki中。

我会尽力保证这份文档与官方英文文档同步。github仓库中保存了中文版文档的markdown格式版本,以及通过UlyssesMarked 2生成的pdf与html版本。html的在线版本可以直接从这里查看,但阅读体验并不好,所以建议阅读gitbook上的在线版本

关于翻译的更多信息请参考这篇文章,或关注我的博客了解最新的翻译整理进展。

翻译整理计划

《指南》最初只是一系列有关CartoCSS的文档的中文翻译。但因为这些文档之间本身并没有很强的逻辑关系,所以我还是把它们重新进行了组织,形成了目前的结构。但是这样的组织的结果就是在各个章节之间需要加入一些承上启下的衔接内容,以及在必要的时候需要对原文进行必要的补充和内容调整。基于这些考虑,翻译整理工作会按照以下步骤进行。

  1. 原文整理。将有必要列入书中的英文原文进行整理,以markdown格式放入对应章节。
  2. 翻译。以段为单位进行翻译。翻译的过程中保留原文,每段译文写在原文下面,翻译的过程尽量忠于原文,但鼓励意译。如果觉得原文阐述不清或有错误,需要修正的时候,请用“译注”标出,并尽可能提交issue给官方仓库,或在邮件列表中进行讨论。
  3. 校对。将译文进行整理,梳理语句、段落、章节,修订格式与错别字。
  4. 增补。在章节过渡、承上启下等位置和需要其它说明解释的地方补充文字。
  5. 整体审校

因为都是利用业余时间在做这件事情,所以这些步骤暂时不设deadline,但大致的计划是在2015年4月1日前完成第一版。

致谢

感谢以下用户参与本书翻译:

特别感谢Anran Yang对本书进行封面设计。

源码仓库

本书内容以markdown格式保存在github上,仓库地址为:

www.github.com/tumluliu/carto_zh-cn

问题与反馈

如果对翻译有任何问题或建议请到项目的仓库中提交issue,或者直接与该项目的负责人Lu Liu联系:

  • 邮箱:nudtlliu#gmail.com
  • 网站:luliu.me 

carto_zh-cn's People

Contributors

ghxiao avatar tumluliu avatar yarray avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

carto_zh-cn's Issues

symbolizer的翻译

在重新梳理译稿的时候,总还是觉得这个symbolizer译成“符号”不好。但在CartoCSS基本概念的一开始就得把它明确。在Mapbox的CartoCSS主页上也是一上来介绍它(其实那个页面里的内容不适合作为Introduction,我个人觉得)。

该翻成什么比较好呢? @yarray @xiaohou122 @nuoshidini

attachment究竟该翻成什么?

attachment是CartoCSS中很有特色的一个概念,也是区别于CSS的特征之一。关于attachment的解释,在这里这里这里三个地方都有提到。在我的翻译所选择的文档中第一次出现是在Styling Lines中。但由于我最早选择的CartoCSS基本概念是从这个页面翻译过来的。而这里面把attachment所指的概念和特征却称为Multiple symbolizers/new symbolizer,通篇都没有提attachment一个字。这就导致了我在后面第一次遇到attachment的时候不知道到底是创造一个新词来对应,还是继续使用之前为new symbolizer准备的“新符号”这个我也觉得很low的译法,目前我暂时使用的是“新符号”。但问题来了,在翻到Symbol Drawing Order中的Symbolizer Ordering的时候,第一句话就是Each object in each attachment may have multiple symbolizers applied to it. 我擦,这可怎么办?attachment和multiple symbolizers都出现了。。。

这使我陷入了深深的沉思。

attachment从字面翻译非常简单,就是“附件”,例如email的attachment。但放在地图样式中,结合上下文,再考虑到attachment之于CartoCSS的重要性,实在让我难以接受“附件”这个名字。到底翻成什么才能更精确的反映原文所要表达的意思呢?

概述部分的结构

由于Mapbox关于CartoCSS缺乏既简明扼要,又能将其中涉及到的重要概念与抽象解释清楚的综述性文字,而对于一本介绍CartoCSS用法的指南来说,这又非常重要,所以只能结合Mapbox的一些相关文档、博客文章和我们自己的理解来写一篇“概述”。

我之前列了一个初步的结构,主要包含三个点:

  1. 为什么要用一种脚本语言来进行地图样式设计?
  2. 制图脚本语言的发展现状如何?
  3. 在所有的制图脚本语言中,CartoCSS有什么特点和优势?

但我现在觉得第一个点比较难写。另外,是否还需要补充其它的内容,请 @yarray @xiaohou122 @nuoshidini 多提建议,谢谢大家。

请求对3.7节Compositing的翻译校对

在这一节的翻译中,考虑到原文的介绍性文字太少,我加入了一些背景与解释。但由于关于Compositing的中文资料很少(我只找到一本译作《数字合成的科学与艺术》,原书是五星经典,但中文版翻译质量不清楚,译者们来自nudt五院),所以到了后面的各个合成操作的解释时我已经把持不住了,烦请各位帮忙整理校对。多谢!

SHA: b1db474

@yarray @xiaohou122 @nuoshidini

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.