用边界情况而不只是理想路径来测试位置数据
一个位于地图完善的市中心的地址,几乎无法告诉您系统如何处理乡村路线、有争议的边界或靠近两极的查询。请有意识地测试这些困难情况。
一个国家内部的行政边界(地区、省份、区县)与时区规则一样,都不是一成不变的。政府会定期重新划定它们:把较小的单位合并成较大的单位,把一个大单位拆分成若干小单位,调整边界线以反映人口增长,或者作为更广泛的行政重组的一部分,给某个地区彻底改名。每一次这样的变化都会波及所有引用旧边界的数据集,而这种波及很少能在所有地方同时完成。
最直接的影响落在那些行政标签取决于已变更边界的地址或坐标上。一个在边界调整前正确列出某个地区名称的地址,调整后可能需要反映另一个地区,即使建筑本身一寸都没有移动。该建筑的坐标仍然和以往一样准确,因为坐标描述的是物理位置,而行政标签描述的是叠加在该位置之上的法定划分。
这给保持位置数据的时效性带来了一个真实而具体的挑战,因为引用同一底层地理的不同系统会按照不同的时间表更新。政府自己的官方记录会在变更依法生效的那一刻更新。引用行政边界的第三方数据集,以及建立在它们之上的内部系统,通常会有一定程度的滞后,而滞后多少完全取决于该数据源的更新频率,以及边界变更发生后它能多快识别并传播这一变更。在该数据源赶上之前,针对它的查询可能会返回一个严格来说已经过时的行政标签,尽管坐标本身从来都没有错。
对于任何基于这类数据进行开发的人来说,实际的启示是:要把行政标签(尤其是地区和区县名称)当作拥有自身更新节奏的数据,与更稳定的底层坐标分开对待,并预料到边界变更会带来一个过渡期,在此期间不同系统可能会暂时对某个区域当前适用哪个行政标签存在分歧。这是一类真实且反复出现的数据维护工作,而不是偶发的异常。构建能够容忍过时行政标签、又不会对下游造成灾难性影响的系统,比假定边界数据一经编制就永久不变更加现实。
通过我们的逆地理编码和邮政编码查询端点返回的坐标和行政区划组成部分,反映的是当前维护的边界数据。与任何位置数据源一样,它们也需要按计划更新,并且要意识到行政地理与自然地理不同,是政府可以而且确实会定期重新划定的。