区域

Firefox 监控用户的区域,以便显示相关的本地搜索引擎和内容。区域存储在两个属性中

  • Region.current - 我们检测到的用户最新位置。

  • Region.home - 我们认为的用户居住地。

它们被分别跟踪,以避免在用户旅行时反复更新他们的体验。通常情况下,调用者应该使用 Region.home

如果用户在一个持续时间内(目前为 2 周)被检测到处于与他们的“居住地”区域不同的“当前”区域,则他们的“居住地”区域将被更新。

测试

要设置用于测试的用户区域,可以使用 Region._setHomeRegion("US", false),第二个参数 notify 将发送区域已更改的通知,并触发搜索引擎和其他内容的重新加载。

更新 test_Region_geocoding.js 数据

此测试中使用的数据是通过在本地运行 MLS 地理编码服务生成的。

请按照 Ichnaea 位置开发指南进行操作 @ https://ichnaea.readthedocs.io/en/latest/local_dev.html

以 CSV 格式列出测试位置,例如

23.7818724,38.0531587
23.7728138,38.0572369
1.6780180,48.5973431
1.7034801,48.5979913
1.6978640,48.5919751

可以使用 MLS 原始数据文件获取大量样本 @ https://location.services.mozilla.com/downloads

将运行地理编码的脚本保存到 ichnaea/ichnaea 中。

import geocode
geocoder = geocode.Geocoder()

f = open("mls.csv", "r")
r = open("mls-lookup-results.csv", "a")

for x in f:
  [lat, long] = x.strip().split(",")
  region = geocoder.region(lat, long)
  r.write("%s\n" % region)

运行脚本。

$ make shell
$ cd ichnaea
$ python run.py

如果要提交新的测试数据,大约 500 个数据点似乎是一个合理的测试数量,然后再遇到测试长度问题。