Zh-hans:Names
| 说明 |
| 提供OpenStreetMap中地图要素名称的标签。 |
| 标签 |
|
|
名称可以使用一系列与名称相关的键进行标记,其中 name 最为重要。此键被定义为要素在现实世界中的主要名称。通常,主要名称是指路牌上最突出的名称或当地语言中最常用的名称。这是该要素最明显的名称——即数据使用者期望在标签或其他界面元素中显示的要素名称。
分类
name=*标签是用于映射要素名称的主要标记。参考页面Names了解有关其用法的介绍。
| 键 | 值 | 可用于 | 描述 |
|---|---|---|---|
| name | 用户自定义 | 默认的名称。注意:
| |
| name:<xx> | 用户自定义 | 在不同语言中的名称;譬如name:en=Shanghai。需要注意的是,以下所有主要变体都可以使用语言后缀。参考Multilingual names。
| |
| name:left , name:right | 用户自定义 | 当同一路径在不同方向有不同名称时使用(譬如,形成两个政治实体之间边界的街道)。 | |
| int_name[:<xx>] | 用户自定义 | 国际名称。考虑用特定语言名称替代,如name:en=...。国际名称不一定是英语,如用于在白俄罗斯、保加利亚、希腊、哈萨克斯坦和北马其顿将名字音译为拉丁字母。
| |
| loc_name[:<xx>] | 用户自定义 | 本地名称。 | |
| nat_name[:<xx>] | 用户自定义 | National name. | |
| official_name[:<xx>] | 用户自定义 | 官方名称。在有较长的官方名称,而通常并不使用的情况下很有用。如official_name=哈尔滨医科大学附属第二医院+name=哈医大二院)。
| |
| old_name[:<xx>] | 用户自定义 | 历史/旧名称,有些情况下仍在使用。 | |
| reg_name[:<xx>] | 用户自定义 | Regional name. | |
| short_name[:<xx>] | 用户自定义 | 应该是可识别的常用简称,而不是昵称(使用alt_name=*),在搜索时很有用。
| |
| sorting_name[:<xx>] | 用户自定义 | 用于名称的正确排序的名称——仅当名称排序不能仅基于其正字法(使用针对特定语言和脚本定制的 Unicode 排序算法与排序表,或在名称列表中包含多种语言和/或脚本的名称)时,才需要此标签;此时需要通过忽略某些部分来实现排序,例如:
所有这些部分都在主要排序层级中被忽略,且难以通过预处理算法推断。 | |
| alt_name[:<xx>] | 用户自定义 | 广为人知的替代名称。如果有一个名称不适合上述任何标签,可以使用 alt_name;如name=Field Fare Road+alt_name=Fieldfare Road。此标签也可以用于多个以分号分隔的名称,如alt_name=name1;name2;name3,但通常不推荐这么做。
| |
| 不要使用这个标签,多个值的后缀名称标记已经被弃用。 |
好的做法
OSM 遵循 实地求是原则,这意味着街道名称和其他专有名称通常按照标牌上的实际内容输入,即使这些名称偏离了常规拼写规则。可能在某些后续章节中描述可能的例外情况。
如果你好奇为什么品牌(比如麦当劳)在 iD、Every Door 和其他应用中具有预设建议,答案在于 名称建议索引(NSI)。在这里,你可以为品牌添加预设,以确保它们拥有统一的拼写和标记。
名称只是名称
name=*应仅限于相关项目的实际名称,而不应包含官方名称中未包含的其他信息,如categories, types、descriptions、addresses、refs或notes。
第一步是确定对象是否确实有名称。任何事物都可以由其类型或类别来描述——例如:房屋、小巷、公园、运动场地、湖泊 等。然而,并非每个这样的对象都有
专有名称。如果某物没有名称,请勿填写 name=* 标签。任何附加信息应包含在单独的标签中,以明确其含义。
对 name=* 的错误使用 |
正确选择的标签 |
|---|---|
name=房屋
|
building=house
|
name=清真寺
|
amenity=place_of_worship, religion=muslim
|
name=足球场
|
leisure=pitch, sport=soccer
|
name=无名小道
|
highway=residential, noname=yes —— 见下面的 #无名称的情况 部分
|
name=通往山顶的备选路线
|
highway=path, 具有 角色的路线关系成员
|
包含通名的名称
然而,上述示例并不意味着名称不能包含类型或描述对象。官方街道名称“East 110th Street”也应记录在 name=* 中,尽管单词 “east” 描述的是相对位置,而 “110th” 和 “street” 分别是编号和类型。
很多时候,除了特定部分外,名称还包含一个通名。例如,胡志明市 应保持完整,尽管该地点标记为 place=city[1]。同时,纽约市 作为 “The City of New York” 的通用名称可能是正确的,但对于名为 “Manchester” 的城市,不要添加描述性的 “City”。
有些对象实际上被命名为 “The Lake” 或 “The Hill”。在这种情况下,将其作为名称添加是可以的。例如,纽约市 “中央公园中央公园” 中的 “The LakeThe Lake” 标记为 name=The Lake,而不是像 Central Park Lake 这样构造的名称。
缩写(不要这样做)
- 主条目:Abbreviations

请不要使用缩写,因为缩写会造成歧义,且不易被计算机处理。如计算机可以很方便地将“Boulevard”缩写成“Blvd”或“Bd”,但反之则不然。
专有名称拼写
如果任何标志牌上都没有显示名称,请遵循当地的拼写规则。请确保该名称确实是当地人所熟知的,不要凭空捏造或构造名称。然而,名称的存在并不依赖于标志牌。大多数自然特征(如树林和湖泊)没有标志牌。在许多政府力量较弱或识字率较低的国家,小村庄和街道的名称可能不会被书面记录,但可以通过询问当地居民来验证[2]。您可以使用 source:name=* 来明确指出您是如何确定该要素的名称的。
如果在当地使用了多种不同的拼写方式,则优先选择最常见或最正确的一种。其他拼写方式可以输入为 alt_name=*。

明显的错误(如 “John-F.-Kennwdy Square”)或由于某些字符未被正确转录或打印而导致的不同拼写,应在合理范围内替换为正确的拼写。如果在一个英语国家存在 “Jolin Tsai Street”,请不要将其还原为类似 “蔡依林 Street” 这样的原始拼写;但如果德国的标志牌上显示的是 “GROSSER WEG”,则应将其转换为 name=Großer Weg,这被视为正确的当地拼写,而不是 “Grosser Weg”(这被视为不正确)。(“ß” 的大写形式 [1] 直到2017年才在德语中被正式采用,且其使用仍是可选的。)
当旧版/过时拼写和新版拼写并存时,新版拼写应作为 name=* 使用。例外情况是可能的,例如,如果某个城市或地区出于历史原因明确偏好旧版拼写,且任何使用新版拼写的标志牌明显是疏忽所致。街道名称中包含的专有名称通常不应调整为新版拼写变体。
避免包含未发音、仅起装饰作用或替代普通字母的 emoji 和其他特殊字符(例如,♥ 用于表示“心”或“爱”,! 用于表示“i”)。商标和公司名称的风格化拼写应按照常规的大小写和拼写规则进行调整,例如,显示为 “TACO 🔔 BELL” 的标志牌应写作 name=Taco Bell。但是,如果更改拼写或大小写会导致混淆,或者原始拼写在日常使用中更为常见,则不要更改。
并非所有标志牌都包含名称。描述性文本、字母数字 编号、广告标语和类似项目不应包含在名称中。
如果当地标志牌与官方出版物、数据库或目录中的数据不匹配,可以将官方名称标记为 official_name=*,但请确保您被允许使用该数据。请注意,数据库可能已过时、包含错误或可能在最大输入长度或允许字符方面有限制。
如果标志牌明显有误,请使用 not:name=* 以防止缺乏本地知识的mapper在 OpenStreetMap 中传播该错误。
原则上,并非所有特殊情况和问题都可以映射为规则。如果仍有疑问,请使用常识。以下问题可能对您有帮助:
- 在邮寄地址中,您会如何书写该名称?例如,在寄信时?
- 导航系统会如何发音该名称,用户会输入什么名称来搜索该要素?
- 该名称在官方目录中是如何显示的?与标志牌或正确拼写规则的任何差异是故意的还是可能的错误?
大小写规则
名称遵循当地的大小写规则;一般建议使用title case,其中每个单词的首字母均应大写(例如,使用“Church Street”,而非“Church street”);但地方性的规则优先于一般规则。例如,在佛兰芒语中,姓氏的大写暗示了此人的贵族身份。源自这些姓氏的街道或公司名称应复制相同的大写字母。在非拉丁语系语言中,通常甚至不可能将名字大写。
注意撇号(')
如果路牌有撇号('),OSM数据也应该有撇号。这通常是没有规律的:伦敦地铁Barons Court站与Earl's Court站相邻,前者带撇号,后者不带撇号。
无名称的情况
大部分mapper会将没有名称的街道以noname=yes标注,这是为了清楚地表明这条街确实没有名字。
缺少名称标签越来越多地用于指示仍需要调查的区域。[3]
多个名称
如果一个要素具有多个名称,尝试使用丰富的语义标签(如表中的标签,例如 short_name=*、old_name=* 等)对其进行分类。如果都不适用,请选择 alt_name=* 标签。如果有多个名称无法归类,可以使用分号分隔多个 alt_name=*。
在 多语言 区域或地点,不同语言的多个名称可能都足够重要,可以包含在 name=* 中。当地习惯可能使用分号以外的分隔符,如 “/” 或 “-”(带空格或不带空格)。这不能替代特定语言的键,例如英文的 name:en=*。
某些国际边界要素(通常是水体)在 name=* 中包含多个值,以便不偏袒任一国家偏好的名称。
在相对罕见的情况下,对于不太突出的要素(如兴趣点),可能会出现并驾齐驱的情况。例如,同一家企业可能交替使用两个名称,并在建筑物的不同侧面分别张贴每个名称。在通过多个值重载 name=* 之前,请确保这确实是并驾齐驱的情况,且没有更结构化的方式来表示命名情况。[4]
某些渲染器会将分号分隔符转换为更美观的形式,如破折号或换行符,但许多其他数据消费者假定 name=* 中只有一个值,因此分号可能会原样出现,令用户感到意外。
左右侧不同的名称
对于线形要素,名称可能会因要素的侧边不同而有所区别。例如,位于比利时和荷兰边界上的街道,在比利时可能被称为 “Amsterdamsestraat”,而在荷兰则被称为 “Brusselsestraat”。
通过使用 name:left=* 和 name:right=* 标签可以分别命名两侧(利用线性要素的方向来确定左侧和右侧)。name=* 标签仍可包含两个名称,以支持不同的工具。
为了避免与多语言名称混淆,建议使用斜杠 “/” 作为分隔符,而不是连字符 “-”。
示例:
name:left=Amsterdamsestraat
name:right=Brusselsestraat
name=Amsterdamsestraat / Brusselsestraat
注意: 左右侧名称不同并不排除存在多语言名称的可能性(这种情况在国界上也更常见)。因此,可以使用诸如 name:left:fr=* 这样的标签。
名称不用于描述
对于描述性内容,请使用 `description=*`,而不是 `name=*`。名称不应包含不属于名称本身的附加信息,例如 类别、地址、ref=* 链接、owner=* 或 operator=* 数据、技术规格等。name=* 也不应用于解释对象的状态、角色或时间限制。OpenStreetMap 术语 或任何其他 制图者注释 都不应成为名称的一部分。
下表提供了详细信息不属于名称且不应包含在要素 name=* 标签中的具体示例:
name=* 的错误使用 |
说明 |
|---|---|
| The Royal Albert Hall, |
不要在名称中添加地址、城市或社区,即使存在多个同名对象。 |
| |
某些来源偶尔会在名称中包含项目编号。在确认这是错误后,请使用单独的 ref=* 标签。
|
| Hill of Tara, |
海拔高度或其他物理参数有专用标签 —— 对于高度,请使用 ele=* 标签。
|
不要用描述对象状态的方式来代替名称。请使用 description=* 或配合 生命周期前缀 使用 old_name=*。
| |
| Bristlecone Road |
营业时间或季节性开放情况应使用 opening_hours=* 或 access:conditional=* 进行标记。
|
| 几何类型(如节点、路径和多边形)以及面向制图者的技术 注释 从来都不是现实世界名称的一部分。 | |
| Mirissa Beach |
不要在 OpenStreetMap 中分开命名对象的部分,除非它们在地图之外也是分开的。 |
特殊情况
历史上,公共交通路线关系预期应将 name=* 设置为以严格格式编写的路线描述。
Union Pacific Railroad(联合太平洋铁路)—— 这是在2007-8年美国TIGER数据导入(道路和铁路)期间分配的 name=* 值;正确的值应为分区/支线/线路的名称,而该铁路的名称应作为 operator=* 和/或 owner=* 的值。(除 Union Pacific 外,还有很多其他错误值。)当两条或多条位置相近且其他方面同名、容易造成严重混淆的线路时,在铁路名称前加上运营商名称是可以接受的。例如,命名 CN Joliet Subdivision(加拿大国家铁路乔利特分区)和 UP Joliet Subdivision(联合太平洋乔利特分区),或者 BNSF Fort Worth Subdivision(BNSF沃斯堡分区)和 UP Fort Worth Subdivision(联合太平洋沃斯堡分区)是合理的。(目前是这样。随着 operator=* 和 owner=* 变得更加普及并避免此类歧义,这种惯例未来可能会消失。)
本地化
到目前为止,大多数渲染系统都可以处理 unicode 字符,因此应使用本地语言作为默认名称name=*,而无需使用拉丁文字。
对于添加不同语言的本地名,请使用 `name` 键并添加后缀 `:✕✕`,创建额外的 `name:✕✕=*` 标签,其中 `✕✕` 为该语言的 ISO 639-1 双字母代码(第二列),或者如果不存在 ISO 639-1 代码,则使用 ISO 639-2/T(三字母)代码(技术/术语代码,包括可能的巨语言代码,但排除分配给语言组的代码,请勿使用书目代码);否则使用 ISO 639-3(三字母)代码(用于孤立语言或巨语言);请勿使用分配给语系的 ISO 639-5 代码。
例如,中文名称使用 `name:zh=*`,英文名称使用 `name:en=*`。默认名称(位于没有后缀的 `name` 标签中)应使用当地使用的任何语言。
下面是用法的示例;所有这些标签可能出现在同一个元素上:
| 名称标签 | 语言 |
|---|---|
name=Deutschland
|
当地语言 |
name:en=Germany
|
英语 |
name:el=Γερμανία
|
希腊语 |
name:de=Deutschland
|
德语 |
name:pl=Niemcy
|
波兰语 |
name:fr=Allemagne
|
法语 |
name:es=Alemania
|
西班牙语 |
name:it=Germania
|
意大利语 |
name:ja=ドイツ
|
日语 |
name:ko=독일
|
韩语 |
name:ko-Latn=Dogil
|
韩语罗马字[5] |
This leads to a more precise definition of alternative names.
根据 ISO 639-1 双字母 标准的语言代码示例:
| Code | Language |
|---|---|
de
|
German |
pl
|
Polish |
el
|
Greek |
en
|
English |
es
|
Spanish |
fa
|
Persian |
fr
|
French |
it
|
Italian |
ja
|
Japanese |
ko
|
Korean |
ru
|
Russian |
zh-Hans
|
Simplified Chinese |
zh-Hant
|
Traditional Chinese |
ko-Latn
|
Romanised Korean[5] |
关于该语言后缀的简短讨论可在 讨论 页面找到。
渲染器支持: S一些渲染系统会显示这些本地化名称。参见 Map Internationalization
导入: 使用 osm2pgsql 允许用户定义新的 .style 文件,这些文件可以包含其他语言名称的列并将其导入数据库。为了从这些列中进行渲染,有必要设置 PostGIS 视图,将这些列呈现为 name 而不是 name:✕✕。一个更简单的替代方案可能是使用 lua 样式文件,如果存在 name:✕✕ 则将其移动到 name。示例见这篇 日志。
编辑器支持: OSM 1044 及更高版本支持本地名称的显示。它会检测当前系统区域设置并首先尝试以此语言显示名称。您可以在 JOSM 专家设置中更改 JOSM 查找名称的顺序。例如,为了优先显示用泰语书写的名称,即使当前区域设置为 en,也请设置以下属性:
mappaint.nameOrder=name:th;name:en;int_name;name
音译
音译是采用一种语言的名称,并将字母从一种文字更改为另一种文字的过程。对于某些语言来说,这是必要的,尤其是那些具有多种正字法的语言,如旁遮普语或塞尔维亚语。在大多数情况下,一些通常被单独标记的语言之间必然具有音译关系;例如,印地语和乌尔都语在语法或语音上没有区别,并且倾向于分别在梵文和波斯阿拉伯文字中包含相同的字符串。在大多数情况下,自动音译是不可能的,因此建议手动添加和查看这些内容。
一些使用非拉丁字母书写的官方本地语言的国家(特别是在大部分前苏联国家、印度、阿拉伯国家和使用CJK字符的地区)有官方的罗马化或其他音译方案;这些方案可以用目标语言代码的适当标签进行标记。
何时应避免音译
在许多情况下都会避免音译。 一般来说,所有有名字的要素都可以音译(城市名称、道路、咖啡馆),但并不一定要把它们都音译;参见Good practice#Map what's on the ground。
应避免音译的情况包括:
- 从维基百科等来源批量导入音译名称;
- 不常用的人造音译名称(例如,添加印度尼西亚一个小村庄的Inuktitut 语音译);
- 虚构语言的名称,如Klingon、Tengwar或Na'vi;
- 没有常用音译的品牌和商店名称。
一些开发者曾试图证明,制图者无需手动翻译或转写晦涩地图要素的名称,因为存在完全自动化的替代方案:
- Sven Geggus 演示了 使用自动生成的转写进行渲染 的原则。
- 德国 OpenStreetMap(Mapnik 风格)和 OpenMapTiles 使用 OSM 地图本地化函数 将许多脚本转写为拉丁字母。
然而,这些完全自动化的方法从根本上来说是不可靠的。只有知道原始源语言,才能正确地进行转写,但 name=*未指明 语言信息。任何与语言无关的转写工具(如 ICU)都不适合用于将某些书写系统(如中日韩 CJK)转写为拉丁字母,因为这些工具是为排序设计的,而非用于用户显示。由于缺乏上下文,机器翻译在非常短的字符串(如地图要素名称)上也往往不可靠。
相反,流行的数据使用者会从 Wikidata 获取手动翻译和转写。虽然 Wikidata 的许多翻译来自相同的自动化工具,但它们通常更可靠,因为原始语言已输入给转写器,且用户有机会纠正结果。
特定于语言的名称
name=* 包含当地语言的通用默认名称。name:<lang_code> 用于在名称因语言而异的情况下标记指定语言中的名称,例如 name:ru=Москва 给出该城市的俄语名称(语言代码 ru),而 name:en=Moscow 给出该城市的英文名称(语言代码 en)。
当一个名称被标记了多种语言时,本地语言的名称标签应当用语言特定的子键进行进行重复。例如,莫斯科被标记为 name=Москва,其值与 name:ru=Москва 相同。这种标记方式非常重要,因为它确保数据使用者无需推断本地语言。基于位置猜测名称语言不太可能总是成功——在俄罗斯有些地方,name=* 并非俄语;在美国有些地方,正确映射的 name=* 并非英语。例如,面向游客的礼品店或服务于移民社区的杂货店可能以外语命名。
另一方面,请勿标记不存在的名称。波兰某个不起眼的村庄可能只有一个名称(记录在 name=* 中)。在所有其他语言中,该村庄都使用其波兰语名称称呼,因为它没有其他名称。仅仅因为所有其他语言都使用波兰语名称,您就不应为所有其他语言添加包含波兰语名称的 name:<lang_code> 标签!
理由
同时标记 name=Kraków 和 name:pl=Kraków 对于显示带有回退语言的本地化名称非常有用。如果有人想要
- 以波兰语显示名称
- 若波兰语名称不可用,则显示英语名称(优先显示"Beijing"而非"北京市")
- 否则显示默认的
name=*,假设其存在
在这种情况下,解决方案是
但请注意,如果 name=* 是波兰语、name:pl=* 未被标记、而 name:en=* 已被标记,会发生什么:
另一种方案是添加对 name=* 语言的猜测(这很棘手,对许多语言而言很复杂,在某些地区甚至不可能实现,而且脆弱且容易出错)。
或者明确地同时标记 name=* 和 name:<lang_code>。
本地名称(loc_name)
loc_name=* 用于要素的当地俗称,但仅在当地名称被视为过于俚语化或听起来非官方时使用。通常情况下,当地居民使用的名称正是我们应设置在 name=* 标签中的名称!以下是一些使用 loc_name=* 的例子:
- There is a bridge in Glasgow known as the Squinty Bridge, but its official name is the Clyde Arc. I have never heard anyone calling it that, so the bridge is tagged
loc_name=Squinty Bridgename=Clyde Arc. - In Reading there's Union Street, but it's been known for decades as Smelly Alley on account of the fishmongers that lined it. The
loc_name=*is ideal.
别名(alt_name)
当存在替代名称时使用(例如,街道名称有不同的语法),有时甚至出现在街道标志牌上,尽管它不仅限于街道名称。
请勿将其用于缩写,且仅在不适用于其他名称类型时使用;例如,reg_name=* 或 name:xx=* 用于地区性翻译。
替代名称通常不会被渲染显示,但可以被 Nominatim 等应用程序使用。
排序名称(sorting_name)
sorting_name=* 是一种提议中的方法,旨在提供一个备用名称,供系统用于按字母顺序进行排序。这对于某些语言/国家的街道名称特别有用,尤其是俄语,其中像 “Street”(街/街道)这样的词经常作为前缀使用。如果直接对主 name=* 标签进行排序,这将会带来问题。
历史名称
日期命名空间后缀可用于历史名称,例如:name:1953--1990=Ernst-Thälmann-Straße。
已弃用的标签
带有后缀的标签 name_1=* 和 alt_name_1=* 不应再被使用进行标记。它们是由于早期导入操作定义不明确而产生的。
注释
另请参阅
外部链接
- United States Postal Service Official Abbreviations, e.g., street-type abbreviations.
- Falsehoods programmers believe about geography
- Eighth United Nations Conference on the Standardization of Geographical Names