区域¶
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 个数据点似乎是一个合理的测试数量,然后再遇到测试长度问题。