Zh-hans:Duck tagging

From OpenStreetMap Wiki
Jump to navigation Jump to search

鸭子定律(Duck tagging)是一种在OpenStreetMap中选择合适标签(tags)时使用的哲理,来自Richard的一篇文章(最初是一个邮件列表

如果它看起来像一只鸭子并且叫声像一只鸭子,我们就称它为一只鸭子。 如果它看起来像一个未爆弹,请迅速逃跑。

一般在OSM上标记事物("objects")是通过识别事物的重要特征。所以我们才能轻易分辨出哪些是道路、哪些是河流、哪些是隧道、哪些是农场、哪些是火车站。

每个事物都对人有不同的独特意义。例如对象被标记为火车站时,你就可以知道它对乘客开放,会有火车在那里停靠。你可以在那里候车,直到你要乘坐的火车到站。 对象被标记为药店时,你就可以知道它是一种商店,你可以在那里购买到医疗用品。

当然,编辑者可以在事物上添加额外的标签来使定义更加精准。对于药店来说,你可以添加营业时间来让它成为24小时药店。对于火车站,你可以通过添加标签来让它成为客运或货运火车站等等。在真实的编辑中,在这一过程是循序渐进的,您首先添加基本标签,然后再不断完善它们。

使用这种方法是因为编辑者是我们宝贵的资源,我们优化了地图易用性。数据使用者需要对地图进行二次处理,当然他们无论如何都要进行二次处理(地图渲染、生成路由数据库、提取并重新整理为地名索引,等等)。但他们只进行他们需要的二次处理。数据使用者进行渲染时可能会选择不关心某些药店是24小时开放的,并会用相同的图标渲染它们。火车模拟器就很可能不会关心这个,也可能不会关心货运车站——嘿,火车司机仍然可以停在那里。等等。

实际上,您可以根据“鸭子测试”进行标记——如果它叫得像鸭子,看起来像鸭子,走路像鸭子,我们就称它为鸭子。

这种方法节省了描述物种所花费的时间。实际上如果需要描述的对象是一种外赫布里底群岛上罕见的物种Florglenood,虽然看起来它和鸭子的行为相同,但它并不是一只鸭子。不必纠结,你只需要把它标注为wildfowl=duck,species=florglenood即可。

highway=cycleway就是一个鸭子定律的实际应用,对于描述这个事物很有意义。这个标签指的是一种道路,允许同时自行车和行人通行,并禁止机动车通行。这表示这条路实际上就是一条自行车道。这节省了一大堆额外的标记工作,并且意味着如果用户不想,他们不需要过度关注细节,只需要知道这是自行车道就好了。你也可以在之后的工作中继续改进,额外增加highway=cyclewayfoot=no。在瑞典,时常出现人非共板,行人和自行车各自使用道路的50%的情况,甚至相互之间可能没有隔离带。在这种特殊情况下,你也可以把它标注为 highway=pathsegregated=yes,并添加foot=yesbicycle=yes