Zh-hans:Key:is_in
| 说明 |
|---|
| is_in 标签用于索引某个地点或地物所在的位置。 |
| 组: boundaries |
| 用于这些元素 |
| 常用组合 |
|
| 状态:使用中 |
| 此标签的工具 |
is_in=* 标签用于索引某个地点或地物所处的位置,在行政边界关系无法提供该信息时尤其有用。在某些行政边界已被完整标注的地区,该标签已不再需要。
另见相关键:is_in:city=*、is_in:town=*、is_in:suburb=*、is_in:village=* 等。
何时使用?
is_in 标签是 OpenStreetMap 最早的标签之一,尽管自 2014 年以来使用量持续下降,但至今仍被广泛使用。在其高峰期约有 400 万个这样的标签,而截至 2024 年只剩下 50 万个
is_in 标签早于边界多边形出现。当一个区域拥有一套发育完善的多边形边界时,原本可以放进对象 is_in 标签中的信息通常都能从包含它的边界推导出来,这样看来标签中的信息似乎就是多余的。一些贡献者因此主张删除该标签,认为它等同于边界信息。另一些贡献者则认为这种看法至少是短视的。
在边界尚未发育完善的情况下,该标签仍然可以承载重要信息。它也可用于关联较小的地点,例如属于某个更大地点(如某个城镇或城市)、但未以正式行政边界表示的街区或郊区。
截至 2019 年 3 月,JOSM 建议删除该标签及其所有变体[1],因为它已不再需要。
说明
该标签让你可以用文字说明某个地点或地物在世界的什么位置。它可以与任何东西一起使用,例如酒吧、建筑、街道、公园、动物园[2],但最可能用于地点。建议始终与 place 类标签一同使用,以帮助某些搜索引擎——例如世界上有好几处名为 San Francisco 的地点(菲律宾、西班牙、美国),而要只返回加利福尼亚的那一个,可以通过处理边界信息来实现。过去曾提议使用以下方式作为替代:
虽然并无要求必须按特定顺序书写实体或把所有内容都列全,但建议按从小到大的顺序阅读,并且到国家级别为止都使用全称。注意以下写法同样有效,只是不推荐:
或者
用于生成分类
较少见的是,该标签也可用于创建一个便于搜索的分类,例如:
这意味着 Canberra 现在可以出现在世界首都的列表中。
提高准确性
该标签的一个弱点是,处理程序可能无法确切知道每个取值代表什么。在上面的例子中,CA 是 California 还是 Canada 的简称?capital_cities 是一个地点还是一个分类?
边界关系是一种解决方案,同时也解决了冗余问题,即为斯德哥尔摩的每条街道都写上 is_in=Sweden,Stockholms län,Stockholm 是一种浪费,而我们可以只使用 Stockholm、Stockholms län 和 Sweden 这 3 个边界关系,不必用冗长的标签去标注每条街道。然而许多边界很难精确描绘(在发展中国家尤其如此),要建立它们只能靠估算,或者这些关系可能已知得并不完整。在建立并完善出一套必要的边界、使其精度与完整度足够之前,逐个标注单个元素可以是一个临时方案。
另一种解决方案是像这样限定 is_in=*:
name=Canberraplace=cityis_in=capital_cities;Australian Capital Territory;ACT;Australiais_in:state=Australian Capital Territoryis_in:state_code=ACTis_in:country=Australia(使用英文国名)is_in:country_code=AU(ISO 3166-1 两位国家代码,需大写以与addr:country=*标签一致)
这样一来,Canberra 的任何郊区、道路或其他地物只需一个标签就能隐含上述全部信息:
is_in:city=Canberra
以下任何 place 类键都可用作限定符:
is_in:continent=*(出于其页面中所述原因,存在争议)is_in:ocean=*(提案,使用率极低)is_in:sea=*(提案,使用率极低)is_in:archipelago=*(提案)is_in:island=*is_in:country=*is_in:state=*is_in:municipality=*is_in:city=*- …… town、suburb、village、hamlet、locality
在大多数情况下,这些专用标签只是为了在以下情形下帮助限定已有数据:
- 边界仍不完整或可能存在歧义(当它们相互重叠时);或
- 几乎不可能正确而准确地绘制(例如大洲、海洋、山脉或山系、山谷、许多分界不明显的森林、冰川、冰盖、高原、文化区域……);或
- 由于分类方式存在争议(例如群岛)而需要精确定界的区域。
即使是国界,在某些争议地区也可能不明确,那里的一些地物可能被标注在一个国家名下,而另一些则被标注在另一个国家名下(有些争议区域要么是重叠的,要么是分开绘制的,即使它们并不属于实际管辖的国家;还存在一些共管区域,或每隔数月就轮换管理的行政区域,以及一些因邻近更大区域的争议而无人认领的区域)。
使用 is_in:* 标签无助于解决这些领土争议,而边界关系允许存在重叠。OSM 数据不是用来裁决领土争议的,也不会因为按用户所在国家显示不同数据而隐藏这些争议。 不过,只有正式政府或拥有某种形式政府的较大少数族群所提出的主张才应录入 OSM,并附上相关来源(例如国际条约或得到部分国家承认的联合国决议,即使其他国家对此存在争议或解释不同)。对于这类情况,使用重叠边界是更为可取的,用户不应因其他社群在同一区域上提出主张而修改边界,即使这会造成一些歧义或搜索结果中(预期内的)重复数据(这些重复或重叠可能会被某些“质量保证”工具提示,但仅作为警告:如果领土争议未经仲裁且未达成国际一致,它们就不是错误,不应在这种情况下被“纠正”)。相反,数据使用者只需在查询中使用更具选择性的标签来过滤结果即可。
参见
标签 "is_in"
示例
- Bedford
- Ryde
- Denmark
理由
基本上,这意味着程序可以自动生成如下形式的索引:
你正在查看 Bedfordshire 的数据。向上可到 England 或 Home Counties。Bedfordshire 的城镇有:Ampthill, Bedford, Clapham, Dunstable……
更重要的是,当按街道名搜索时(例如搜索 'High Street'),它可以告诉你返回的众多结果中哪一个很可能是你想要的,例如显示 High Street;Fulbourn;Cambridgeshire 和 High Street;Chapel-en-le-Frith;Derbyshire。
- 在最新的搜索引擎 Nominatim 中,这一点已经无需使用 is_in 标签就能自动实现。
"is_in" 的弃用
以下国家已不再使用 is_in=* 及相关键。请不要在下列国家添加它们:
| 国家 | TagInfo 追踪器 |
备注 |
|---|---|---|
| Australia | 链接 | Australia 在 2024 年初移除了几乎全部剩余示例。残留的大多数示例是澳大利亚领海内的海洋保护区。 |
| Belgium | 链接 | Belgium 于 2020 年移除了全部剩余示例。TagInfo 追踪器中残留的大多数示例来自邻近的 Germany。 |
| Greece | 链接 | Greece 于 2020 年中移除了全部剩余示例。 |
| Indonesia | 链接 | Indonesia 于 2025 年 12 月 11 日移除了全部 "is_in" 标签。 |
| Malta | 链接 | Malta 不像其他国家那样广泛使用 "is_in"(来源):到 2024 年中几乎全部示例都已消失,最后两个示例于 2025 年 3 月 11 日移除。 |
| Netherlands | 链接 | Netherlands 的欧洲部分于 2019 至 2021 年间逐步淘汰了 "is_in":更多信息见 讨论。与 Belgium 一样,残留的大多数示例来自邻近的 Germany。 |
| Norway | 链接 | Norway 于 2023 年移除了几乎全部剩余示例。 |
| Spain | 链接 | Spain 于 2019 年移除了几乎全部示例:TagInfo 追踪器中残留的大多数示例来自邻近的 France 和 Portugal。 |
参见
object:*=*