Zh-hans:Tags

标签(Tags)是与地图元素(节点、路径或关系)相关联的属性。它们用于描述由这些元素所代表的地图要素的具体特性。一个标签由两部分组成,即键(key)和值(value),两者之间用等号(=)分隔。这两部分都是自由格式的文本字段,但通常表示数值或其他结构化值。一个地图元素可以带有任意数量的标签。
关于标签的含义和用法,社区已约定俗成并记录在本维基上。在某些情况下,对于标签的实际含义存在不同看法,或者不同的地图绘制者以不同方式使用标签。As of May 2026[update],OpenStreetMap 包含超过10万个不同的键和超过1.9亿个不同的标签。
有限数量的标签也可以应用于变更集,用于描述评论和数据来源等元数据。详情请参见变更集标签。
键与值
标签应用于元素或变更集,形成任意大小的标签集合。但是,每个集合中同一个键只能出现一次。当某个标签不存在时,通常认为其采用默认值或从父元素继承的值。
因此,键用于描述一个主题、类别或要素类型(例如,highway或名称)。键可以通过前缀、中缀或后缀(通常以冒号:分隔)进行限定,形成超类别、子类别或命名空间。常见的命名空间包括名称键的语言规范和日期命名空间规范。
值则为键所指定的要素提供详细信息。通常,值可以是自由格式文本(例如,name="Jeff Memorial Highway")、一组不同值中的某一个(枚举类型,例如highway=motorway)、用分号分隔的多个枚举值,或者是一个数字(整数或小数,例如距离)。即使键本身不言自明(例如motorcycle:rental=yes),值对于标签来说也是必需的。
以下是实际使用中的几个示例:
highway=residential—— 一个键为highway、值为residential的标签,应用于路径以表示一条供人居住的道路。name=Park Avenue—— 一个值字段用于传达特定街道名称的标签。maxspeed=50—— 一个值为数字速度和速度单位的标签。单位km/h是隐含的,但也可以明确指定;英里每小时可以通过附加mph来指定。在OSM中,公制单位是默认单位。maxspeed:forward=*—— 一个包含命名空间的键,用于进一步区分maxspeed的含义。name:de:1953-1990=Ernst-Thälmann-Straße—— 一个带有后缀命名空间的name键,用于指定在某些年份有效的德语名称。
查找你需要的标签
以下资源常用于查找合适的标签或探索标签的使用情况:
- 浏览本维基
- 地图要素 —— 按键含义分组的已接受标签列表。
- Category:要素 —— 按用途或功能分组的标签。
- Category:提议中的要素 —— 查找新标签和尚未普及的标签。
- Category:标签
- 如何绘制某物 —— 按字母顺序排列的现实世界对象列表。
- 搜索本维基
- Taginfo —— 探索OSM数据库中当前标签使用情况的网站,包括不一定有文档记录的键和值(但如果某个标签有文档,它会包含指向本维基的链接)。
- TagFinder —— 为OSM标签提供全文搜索引擎的网站。(也提供Web服务)。
- 名称建议索引
- 查看其他地点的类似对象是如何绘制的(如果你知道哪里可能也存在)。
- 提议你喜欢的任何标签
- 搜索 标签邮件列表存档 或 帮助网站关于“tagging”的问题 或 forum.openstreetmap.org。当然,你也可以在这三个网站上提问(但请一次只在一个网站上提问)。
- OSM语义网络 —— 包含OSM标签的机器可读结构。
技术规范
元素 描述了标签的技术限制、编码和格式。
在编辑器中的使用
- 主条目:预设
一些OSM编辑器(例如 iD、Potlatch 3、MapComplete)默认隐藏对象的标签,使其无法直接编辑;相反,用户选择一个预设并填写表单。然而,在大多数编辑器中,所有标签都可以通过进入某种高级模式来显示和编辑。
iD
- (仅当你创建了一个新对象时才需要)选择通用要素类型预设(即最底部的那个)。例如,如果你创建了一个新的“点”对象,请选择“点”。
- 选择“所有标签”(左下角)。
StreetComplete
- 按下撤销(屏幕左下角)。
- 选择最后一个编辑选项或显示编辑历史。
- 在最终确认屏幕上,StreetComplete将列出编辑中添加的标签(以及回退操作会修改的标签)。
MapComplete
MapComplete会为新用户隐藏标签。一旦贡献者拥有超过25个变更集,添加的标签将显示在“保存”按钮下方(针对某个问题)以及预设下方。
key=value 语法
在讨论中以及使用某些工具时,通常使用 key=value 语法来指代一个标签,即 键,然后是等号,接着是 值。有时,为了避免混淆,键或值会被引号括起来:key="value" 或 "key"="value";引号(实际上也包括等号)不是标签内容的一部分。
key=value 语法或其变体在以下工具中使用:
- iD —— 选中一个要素时,展开左侧边栏的“标签”部分,并将视图从
切换为
。 - JOSM —— 在“标签”面板上右键单击,选择“复制所有键/值”。
- Level0
- 名称建议索引 —— 索引中每个条目下方都会列出 key=value 格式的标签集。
- OpenStreetMap标签编辑器
- Osmium —— 过滤器表达式 通过附加语法补充了键值语法,用于表示替代键或值。
- Overpass turbo —— 此语法在 OverpassQL 中作为 has-kv 过滤器 出现,也出现在更简单的 向导 语法中。
- Taginfo —— 在搜索框中输入 key=value 语法以查找标签。
在本维基上,你可以使用 {{Tag}} 模板以 key=value 语法引用一个标签。
有时,关系的角色会表示为 role=…。这意味着该元素在关系中的角色被设置为等号右侧的值,而不是将一个名为 role=* 的键设置为该值。
元数据
有些标签仅用于在数据元素中附加元数据,以在地图编辑器或质量保证工具中显示(例如完成状态、待办事项、近似值、数据或影像来源、工具或编辑器版本等)。自 API 0.6 版本起,鼓励地图编辑器和导入工具将他们创建的变更集附加一些元数据标签(变更集不是数据元素),而不是标记每个添加或修改的数据元素:这些标签现在在本维基上被记录为“可丢弃的”,这意味着编辑器在更新数据元素时可能会将其从数据元素中静默删除(它们仍然可以在变更集中使用,并且这些标签在较旧版本的元素中仍然可见,在这些版本中这些可丢弃标签已被移除。你仍然可以从旧的变更集中检查这些旧标签,因为这些变更集指向带有这些标签的旧版本元素,而这些变更集并未使用现在更推荐的标记方法)。
软件支持
- www.openstreetmap.org 将标签键和值链接到本维基上描述它们的页面。当前所有已链接的页面都在 一个数据文件 中定义。要为新的键或值文档页面更新该文件,必须运行 一个脚本,并将生成的文件提交到 GitHub。相关示例可在 Linux 和 macOS 中找到。(某些值的链接是通过 另一个文件 由 tag2link 根据 Property:P8 定义的。)
- iD 编辑器会补全已知的标签键和值,并从每个标签链接到本维基上描述它的页面。要将新的键或值文档页面告知 iD,请为该页面创建一个数据项,然后等待(大约一天)直到 iD 扫描了新的数据项。
参见
| ||||||||||||||||||