Zh-hans:Changeset

变更集(changeset)是指单个用户在短时间内对数据库进行的一组编辑(另见编辑)。
例如,如果你想在地图上添加一些新的房屋,你可以使用一个变更集来完成:
变更集的地理范围

一般建议:变更集应保持本地化。
数千名志愿者每天审核数百条贡献(例如使用OSMCha),以维护其所在区域的制图质量,并为新制图者提供指导。一些老式或功能较原始的审核工具的过滤能力有限:虽然它们允许过滤与特定区域重叠的变更集,但每个变更集的边界框大小由相距最远的两个被修改对象决定。当进行跨越较大地理区域的修改时,会导致这些变更集被包含在许多制图者的审核过滤器中,从而使他们难以将注意力集中在真正触及自己感兴趣区域内对象的变更集上。因此,一些审核者仅仅因为变更集范围过大就将其标记为不良变更集(即使其内容本身没问题)。
社区对最佳变更集大小尚未达成共识。一些制图者认为变更集不应跨越超过一个大陆,而另一些则倾向于变更集不大于单个城市。
为避免冲突并出于对审核者的尊重,建议:
- 将修改集中在一个较小的地理区域内(城市、区或省)
- 将修改保持在同一个(国家)内
- 在转到不同区域制图之前,先上传/保存修改。
注意:JOSM 编辑器允许使用“更新选区”功能将跨越较大区域的修改拆分为较小的部分进行保存,从而遵循上述指南和建议。
| 每个国家可能有你没意识到的不同 OSM wiki 规则。较小的变更集更容易审查,并在发生冲突时更容易回退。但有时,将一个修改拆分为多个变更集可能会掩盖修改内容,并导致需要回退多个变更集而非一个。 |
示例:
- 如果你要添加/修改2个距离较远的城市中的10个对象 => 创建2个变更集,每个城市1个。
- 如果你要添加/修改5个国家中的5个对象 => 创建5个变更集,每个国家1个。
将类似的修改组合在一起

如果你在一次编辑会话中,在一个局部区域内进行同类修改,最好将它们组合到一个变更集中,而不是分成多个变更集。这有助于其他制图者审查修改,并在一个变更集中集中反馈。
变更集上的标签

变更集会附加 key=value 对(标签)。绝大多数变更集都会有这两个标签:
comment=*– 描述制图者进行该组修改的原因或修改了什么。某些软件(例如 www.osm.org)不会将此标签显示为普通标签,而是作为变更集摘要/标题显示(如此处的截图所示)。
虽然是可选的,但强烈建议制图者充分利用此标签,设置一个有意义的、人工生成的描述(而非自动生成的消息),因为它会出现在几乎所有列出该变更集的地方,并且很可能被其他制图者阅读以了解发生了什么。另请参见良好的变更集注释。created_by=*– 指定进行修改的编辑软件或脚本
其他一些常用标签包括:
imagery_used=*– 表示编辑器中使用了哪些影像source=*– 指定此变更集中所做编辑的来源bot=yes– 用于自动化编辑,由程序(即脚本或机器人)执行locale=*– 存储编辑器使用的语言(例如 JOSM 使用created_by=JOSM/1.5 (13367 en),末尾字母表示语言)。review_requested=yes– 允许用户请求他人审核该变更集。iD 和 JOSM 有插入此标签的选项,OSMCha(及其他工具)可以识别它,并使得能找到带有此标签的变更集。另见[相关博客文章](http://neis-one.org/2017/09/review-requests-osm/)。data_used=*– 表示在使用 Rapid 编辑时使用了哪些 Esri/ArcGIS Datasets
自 iD 2.4.0 更新后,这些标签会被添加到变更集:
hashtags=*– 分号分隔的标签,例如 “#MissingMaps;#Tanzania”host=*– 网页编辑器的网络地址。changesets_count=*– 该用户已进行的编辑次数,对于首次编辑的用户将是 “0”ideditor:walkthrough_started=yes– 如果用户开始了引导教程。ideditor:walkthrough_progress=*– 用户的进度
自 iD 2.16.0 更新后,与验证相关的标签被添加到变更集:已解决的问题计数将写入变更集标签 例如:
自 iD 2.15.0 更新后,与验证相关的标签被添加到变更集:已忽略的警告计数将写入变更集标签 例如:
另请参见 iD 文档 iD issue-changeset-tags 格式为:{warnings|resolved}:{type}:{subtype}={count}
自 iD 2.13.0 更新后,此标签被添加到与笔记相关的变更集:
closed:note=*– 已关闭笔记的笔记 ID [1]
标签的更改历史不会存储在变更集本身上:这可以从整个历史中推断出来。
自定义变更集标签也是可以的。JOSM、Potlatch2 和 iD 编辑器允许最终用户指定自定义变更集标签(并可以根据需要创建新标签,就像在为数据元素打标签时一样)。
查看变更集
www.osm.org 上的历史功能显示当前查看区域的变更集。变更集的地理范围由一个橙色矩形显示,该矩形包围了所有修改。对于在大范围内进行许多小修改的“机器人”来说,这个矩形可能会非常大。(这就是为什么在一个区域会显示许多变更集,即使该变更集看似不相关。[2])
存在比基本橙色矩形更好的质量保证工具。通过浏览器插件 OSM Smart Menu,可以从 www.osm.org 的变更集视图在其他工具中打开变更集,有许多更高级的变更集查看器(如 OSMCha、Achavi、Changeset by Comparison Visualization、FacilMap)可用。截至2023年12月,OSMCha 和 Achavi 常常无法加载跨越中等国家大小(或约35万平方公里)的变更集,可能更小的变更集也无法加载,而工具 Changeset by Comparison Visualization 则可以毫无问题地打开和查看甚至全球范围的变更集。由于这些工具可能具有不同的功能和用例,保持变更集较小可以使用更多种类的工具。
变更集可以通过以下 URL 模式直接访问:https://www.openstreetmap.org/changeset/<变更集编号> 另一种选择是使用查询功能并选择一个要素,这将显示该要素的详细信息及其最后的变更集。
变更集的时间和日期
每个变更集都有时间戳。openstreetmap.org 的网页界面显示大约日期(例如“一年前”)。将鼠标悬停在日期上几秒钟,会出现包含确切日期和时间的工具提示。你也可以在 XML 文件中查看时间戳:在网页界面中,这些文件在详细说明变更集的面板底部以超链接形式提供。
变更集讨论
变更集讨论在网页界面上显示为变更集标签下方的评论和回复(即讨论!)。这是一个欢迎新用户、对他们的制图贡献给出提示或与添加者讨论看似有问题的变更集的好地方。变更集讨论是公开的,因此 OpenStreetMap 社区的其他人可以参与,并查看任何商定进一步修改的理由。更多详情请参见:博客上的详细说明。
一些关于这些讨论的统计数据如下:
- 按地图区域/国家特定:https://resultmaps.neis-one.org/osm-discussions
- 按用户特定:
有人评论了我的变更集,我该怎么办?
其他制图者可能会要求你对编辑做出澄清,要求你提供编辑来源,或指出你犯的错误。
你几乎总是应该回应,即使回应可能是“我不知道”——或者如果你自己修复了错误。制图者之间的公开交流对建立信任至关重要。从不回应的人的编辑可能被认为可信度较低。
要回应,你需要登录。使用桌面电脑浏览器浏览 openstreetmap.org 最舒适——在智能手机上操作界面可能比较麻烦。
请记住,你不会仅仅因为犯错而被封禁!我们理解学习 OpenStreetMap 如何运作需要时间。此外,我们可以帮助你撤销你的编辑可能造成的任何混乱。然而,对于那些无视多次联系、持续进行有问题的编辑的用户,首先会收到警告(所谓的0天封禁),然后其账户会被逐步加长封禁时间。
我评论了某人的变更集,但他们忽略了。我该怎么办?
如果变更集评论被忽略,且该评论是关于所做修改质量的,例如:
- 要求停止某些不好的制图(理想情况下有解释为什么是问题以及链接到 OSM Wiki 或其他地方的相关讨论/文档)
- 要求解释为什么编辑了某些东西
- 要求修复该用户造成的一些有问题的编辑
且被忽略,那么可以尝试进一步的沟通。
写信给数据工作组时,通常简短的信息就足够了。示例如下。
收件人:Data Working Group <data@openstreetmap.org> 主题:用户 [用户名] 忽略变更集评论 我评论了用户 [用户名] 所做的变更集 [变更集ID],提出关于 [简要说明你为何评论其变更集] 的担忧。该用户忽视了我, 并继续进行了更多修改,例如:[另一个变更集ID]。
变更集使用的语言
如果制图者编辑的区域大于自己的国家,跨越了不同国家且使用不同国家语言,请使用英语。例如,一个不寻常的编辑会产生一个从法国到印度的变更集边界框,它将显示在沿途数十个国家中,此时用英语撰写最终的编辑注释是合适的。大多数在其本地历史视图中看到该编辑的人都能理解添加/更改/删除的内容,而无需借助在线翻译服务。如果示例的边界框穿过了意大利,并非所有人都讲法语或印地语。这同样适用于通常只在自己国家制图但偶尔在另一个使用不同语言的国家进行编辑的制图者。请使用该国的语言撰写注释,或使用英语。确实,西班牙没有人会期待看到一条用德语写注释的编辑。
打开和关闭变更集
变更集在编辑会话开始时“打开”,结束时“关闭”。关闭后的变更集是固定的,无法再编辑。这包括变更集注释;一旦变更集关闭,就无法再修改。变更集可以“显式”关闭(请参见你所用编辑器的文档),或“自动”关闭(经过一段无活动期后,目前为1小时)。同一用户可以在任何时间有多个打开的变更集。变更集有最大容量(当前为10,000个元素)、最大打开时间(当前为24小时)和空闲超时(当前为1小时)。
技术细节

有关技术细节,请参见API 0.6 文档,其中包含关于变更集的详尽文档。调用 Get Capabilities API 会返回当前应用的变更集限制。
变更集于2009年4月随 API v0.6 引入。在那一日期之前的编辑被“合成”为了变更集[3](迁移代码)
最初有些标签仅用于元素上,以附加在地图编辑器或质量保证工具中显示的元数据(例如完成状态、待办事项、近似值、来源等)。自 API 0.6 版本以来,鼓励地图编辑器和导入工具将这些元数据标签附加到它们创建的变更集(变更集不是数据元素)上,而不是在每个添加或修改的数据元素上打标签:这些元素上的旧标签现在在本 wiki 中被记录为“可丢弃”标签,这意味着编辑器在更新它们时可以默默地从数据元素中删除它们(它们仍然只可用于变更集,并且仍然在元素的历史记录中可见,在其初始变更集指向的版本中,但更新的或新创建的元素将不再使用这些标签,这些标签现已附加到与每个元素版本关联的变更集上)。
变更集转储
在 planet.osm.org 有一个包含所有变更集的大 bzipped XML 文件。
使用以下命令通过 BitTorrent 下载最新的转储:aria2c --seed-time 0 https://planet.openstreetmap.org/planet/changesets-latest.osm.bz2.torrent
有几个解析变更集文件的工具:
- 可以使用 ChangesetMD 将其导入 PostgreSQL 数据库
- ... 或使用 osmchanges-postgres。
- 变更集转储文件可以使用
osmchangesets2csv转换为 CSV
提案
以下是一个定义更多通用变更集标签来描述编辑的提案:Proposal:Changeset tags(包括之前的提案)
参见
- JOSM Wiki 解释了如何使用变更集。
- 使用 JOSM 的 reverter 插件 回退变更集
- 区分实地调查与桌面制图(草案)
- OSM 变更集查看工具
- 有一个[命令行工具](https://github.com/mvexel/osm-changesets-to-parquet)可将变更集转储文件转换为 parquet 格式。
- {{Changeset}} - Wiki 模板(添加变更集 ID 并链接到此特定变更集的查看器);示例:158665155 (achavi, OSMLab, FacilMap)
参考资料
| ||||||||||||||||||||||||||