Zh-hans:Key:phone

From OpenStreetMap Wiki
Jump to navigation Jump to search
phone
说明
与对象关联的电话号码。请使用 +CC XXX XXX XXX 格式,其中 CC 为国家代码。 编辑此说明
组: annotations
用于这些元素
可用于节点可用于路径可用于区域可用于关系
另见
状态:实际使用
本页面由 AI 从英文页面翻译而来,内容需要人工复核。

与某个 POI 关联的电话号码。另见 contact:phone=*,这是一种使用 contact:*=* 前缀方案的替代电话号码标注方式。

用法

如果你的国家不使用区号,则应省略该部分。在添加电话号码之前,请确认你没有违反所在国家的数据隐私法(尤其是对于私人电话号码)。

fax=number 可以像 phone=* 一样使用。

空格与分隔符

一些国家对电话号码的书写方式有非常成熟的国家标准(例如美国的 xxx-xxx-xxxx),这导致这些国家的标注者更偏好该格式而非上述标准(但即便如此,NANP 标准的 "+1-xxx-xxx-xxxx" 格式也应明确写出,以表明该电话号码可在国际上拨打:OSM 用户代理不应根据地理位置或根据前 3 位数字组的取值来猜测如何拨打电话)。

请注意,对于采用国际 E.164 格式的电话号码,空格(甚至连字符)分隔符并不重要,但惯例是至少在 ITU-T 国家代码与电话号码其余部分之间使用分隔符。其他分组是可选的:区号最好只在仍将其明确用于国内通话的国家才加以分隔;在其他国家,这些分组只是出于方便以及电话簿中的本地习惯或设施所示而保留(这些分组可能仅出于助记原因而变化,即使在拨号时被忽略,也没有要求必须取消这些组分隔符)。

当电话号码带有用于目标选择的附加数字时也是如此(例如在德国,有一个常见的公共部分,长度可变,后跟一个内部短号,可以在本地直接拨打而无需在组成国家号码之前使用任何长途选择代码)。就 OSM 而言,我们应假定呼叫是从公共网络而非私人内部网络进行的,并且即使从本地网络使用长途选择代码拨打完整号码,完整号码也应能接通,此时短号也应能使用。

关于分隔符的相同说明也适用于非 E.164 格式的电话号码(因为它们不能在国际上使用,只能在国内拨打,无论是全国范围还是仅从某个更特定的网络拨打)。

仅使用对象专属的紧急号码

一些标注者开始为警察局、医院和消防站添加紧急号码(另见 emergency:phone=*)。只要使用本地号码且该号码确实与该对象相关联,这样做就没有问题。你不应为本地对象标注通用紧急号码(例如 911 / 110 / 112),因为当人们试图以非紧急事务联系本地警察局、医院或消防站时,这可能导致非紧急呼叫阻塞真正的紧急呼叫。

分机

一些电话号码带有分机,标注这些分机有几种不同的格式

  • 非正式的北美系统:+1-905-688-5550x3369 或 +1-905-688-5550 x3369
  • E.123 格式:+1-978-750-1900 ext. 4309
  • DIN 5008 格式:+49 123 4567-1234

DIN 5008 格式受到德国[1]和奥地利[2]社群的青睐,但在其他地区使用有限,因为它与 E.123 不兼容。

电话号码助记词(Phonewords)

在一些国家,商家在公示的电话号码中常使用电话号码助记词。phone=* 应包含为便于机器读取而完全解析后的数字电话号码。招牌等上看到的电话号码助记词可以放入 phone:mnemonic=*,这有助于搜索引擎以更易记的方式显示该电话号码。

免费拨打号码(免费电话)

大多数免费电话无法在国际上拨打,因此一些使用者以国家格式(例如 800 555 1234)标注它们,不带国家代码。其他人则偏好使用包含国家代码的完整国际格式(例如 +1 800 555 1234),以使其与其他电话取值保持一致,并且因为国际格式在国内仍然有效且可拨打。一些免费电话号码被放在带有国家后缀的键中,参见 Key:phone#Support for multiple countries。

如何标注

按照上述格式,将 phone=number 标签添加到任何带有电话的地图对象上。

如果有多个电话号码,请使用 phone=number;number,如 § 解析电话号码 和 Semi-colon value separator 中所述。

更专门的标签:

  • 对于手机号码,可以将其标注在单独的标签中,mobile 是最常用的标签,不过 contactːmobile 和 phone:mobile 也曾被使用。
  • emergency:phone=*,用于关联紧急情况下应拨打的电话号码

示例

右上图所示的是一家位于英国(代码 44)、伦敦(区号 20)的商店,因此可以标注为 phone=+44 20 8452 7891。

地区差异

意大利

意大利不像许多国家那样在国际格式中省略 0,因此例如米兰号码 02.724261 在 OSM 中写作 phone=+39 02 724261。另有少数几个国家如此,要求从国外拨打时使用国内长途选择代码。(注意:从国内拨打时,默认的 "0" 长途前缀可能被“长途选择代码”取代,但仅适用于启用了该选择功能的电话号码:并非所有国家电话号码都有长途选择代码,而且某些不以默认 "0" 长途代码开头的“短”号段也可以在国际上拨打;因此从国外拨打时仍必须使用这个默认的 "0" 长途代码)。

美国

美国电话号码的首选格式是 +1-NXX-NXX-NXXX,依据一次 2023 年讨论和一次 2025 年意向调查。例如 phone=+1-323-456-7890。该格式既实现了国际化,又将区号和本地号码分开,便于很少遇到国际拨号前缀的美国用户。美国和加拿大的电话号码由以下四个要素组成:"+"(加号)、国际国家代码(始终为 1)、区号和本地电话号码。电话号码不应在这些任何数字要素(包括区号)周围加括号,尽管这在许多本地电话号码表示方式中很常见。

公共电话

即使电话亭也可以有电话号码。不要混淆。电话亭必须始终标注 amenity=telephone 以描述该对象是什么。你可以选择性地添加 phone=* 标签以提供其电话号码的额外细节。但请注意:在德国,公共电话不再有电话号码,因为原本可拨打它们的服务已经停止。

解析电话号码

显然,假定标注者都正确遵循了上述格式是危险的。使用该标签的代码可能会出于防御性地拒绝或尝试纠正可能的格式错误。需要特别注意的几点:

  • 拨号时,'-'号必须省略(手机会在其联系人列表中接受该字符,但在拨打电话时会忽略它)。分隔用的空格或点也是如此。
  • 如果设备不支持'+'号,则必须将其替换为本地国际呼叫前缀;例如大多数国家为 00,美国为 011。拨号设备可能需要相应配置(对于能自动识别本地移动运营商规则并在其 SIM 卡或手机固件中预配置的移动电话设备,通常不需要这样做)。
  • 字符 ; 可用于分隔多个电话号码。[3]

支持多个国家

一些设施为不同国家提供不同的电话号码(多见于该设施位于国界线上,或是国际性公司的情况)。

解决此问题的一种可能方式是在键的末尾添加 ISO 3166-1 代码。 例如 (以下所有电话号码均为本页文档说明而虚构):

  • phone=+32 57 53 62 45,用于该设施所在的国家,
  • phone:BE=+32 57 53 62 45 和 phone:FR=+33 6 12654478,用于不同的国家电话号码。注意,使用国家代码时,惯例是使其大写,以免与语言代码混淆(但一些标注者改用小写)。

此外,一些设施有一个只能在国内使用、无法在国际上拨打的本地电话号码(尤其是免费电话号码或短号码)。对于国际通话,它们会公布另一个电话号码。例如:

  • phone:FR=0 800 123 456,用于仅从该设施所在的法国拨打的标​​准免费电话(注意没有 "+" 号,它不是国际格式),
  • phone=+33 1 23 45 67 89,用于从任何其他国家拨打时(注意并不总是能将其用于国内通话,否则免费费率将不适用:使用者必须改用国家号码,他们通常会收到自动语音系统的提示:应使用最具体适用的键;这意味着 OSM 用户代理应呈现可能的电话号码列表,并在子键中编码其限制,以便使用者选择要拨打哪一个电话号码,即使这些代理预选了一个适用的号码)。

一些电话号码只有在从特定运营商拨打时才可免费(或以优惠费率)拨打(例如该运营商的客服)。从其他网络拨打时,必须使用另一个国家电话号码或标准的地理电话号码。例如,可以这样标注:

  • phone:FR:mobile:SFR=3000,用于仅从 SFR 移动网络(法国运营商)拨打的标​​准免费电话,有时即使从国外以漫游方式访问也可以拨打(前提是你使用该运营商的同一张 SIM 卡);注意这个短号也没有 "+" 号(该电话号码在国际上无效)。(根据该国使用的惯例调整标签的 "FR:mobile:SFR" 子键)。
  • phone:FR=0 810 123 456,用于仅在法国从其他网络拨打的固定费率电话(同样没有 "+" 号)。
  • phone=+33 1 23 45 67 89,用于从任何其他国家或网络拨打时(国际长途费率按发起运营商的资费计划适用)。

显示或拨打来自 OSM 号码的应用 / 网络服务

  • Offmaps(iPhone):在其可下载的城市指南中显示并拨打电话号码。
  • OsmAnd:显示并拨打所有类型已索引 POI 的电话号码。
  • Organic Maps:显示并拨打所有类型已索引 POI 的电话号码。
  • Galileo Offline Maps:显示并拨打所有类型已索引 POI 的电话号码。

替代标签

contact:phone=* 对绝大多数标签具有相同含义,不过一些标注者在使用它们时带有细微区别。

不时有人提议弃用不带 contact: 前缀的标签或带 contact 前缀的标签,这些提议往往引发激烈讨论,最终得出没有共识的结论。在发起新讨论之前,请先阅读以往的讨论[4][5][6][7][8]。

Discussions/tagging/contact:phone or phone 是一个旨在弃用 contact:phone=* 但未获通过的提案。

Proposed features/Social media contact prefix 是一个类似的尝试,旨在弃用 facebook=*、twitter=* 等,转而使用 contact: 前缀版本。

可能的标注错误

  • phone=yes🔎 ‒ 也许 telephone=yes 是想表示某设施有可用的公共电话。
如果你知道有使用这个标签的地方的话,请确认能否使用其他标签代替。
我们非常不鼓励你使用自动化编辑,除非你知道自己在做什么!

参见

注释与参考资料

  1. ↑ https://community.openstreetmap.org/t/telefonnummer-nebenstelle-kennzeichnen-phonenumbervalidator/137711
  2. ↑ https://community.openstreetmap.org/t/telefonnummern-report-fur-osterreich/140237
  3. ↑ 本文的早期版本建议 private branch exchange 电话分机应以 \;ext= 开头,紧急号码或其他服务代码应以 \;phone-context= 开头,与 RFC 3966 中的语法类似。标注者应意识到没有任何软件兼容这两种语法,而且它在分机很常见的北美标注社群中也不受欢迎。截至 2024 年 10 月,phone=* 根据 RFC 3966 明确不接受 tel: URI。关于如何表示分机,讨论仍在进行中。
  4. ↑ https://lists.openstreetmap.org/pipermail/tagging/2019-December/thread.html#49474 - 2019 年 12 月讨论串
  5. ↑ https://lists.openstreetmap.org/pipermail/tagging/2019-August/thread.html#47668 2019 年 8 月讨论串
  6. ↑ https://lists.openstreetmap.org/pipermail/tagging/2020-May/thread.html#52379 - 2020 年 5 月讨论串,超过 50 条消息
  7. ↑ https://lists.openstreetmap.org/pipermail/tagging/2022-January/thread.html#63734 2022 年 1 月讨论串
  8. ↑ https://community.openstreetmap.org/t/double-tag-2-tags-for-the-same-purpose/121152/3 和 https://community.openstreetmap.org/t/rfc-deprecate-phone-mobile-website-and-use-contact-instead/121231 - 2024 年讨论串

外部链接