【发布时间】:2016-08-21 04:28:44
【问题描述】:
我有一个 geojson 文件,其中包含一个位置列表,每个位置都有经度、纬度和时间戳。注意经度和纬度乘以 10000000。
{
"locations" : [ {
"timestampMs" : "1461820561530",
"latitudeE7" : -378107308,
"longitudeE7" : 1449654070,
"accuracy" : 35,
"junk_i_want_to_save_but_ignore" : [ { .. } ]
}, {
"timestampMs" : "1461820455813",
"latitudeE7" : -378107279,
"longitudeE7" : 1449673809,
"accuracy" : 33
}, {
"timestampMs" : "1461820281089",
"latitudeE7" : -378105184,
"longitudeE7" : 1449254023,
"accuracy" : 35
}, {
"timestampMs" : "1461820155814",
"latitudeE7" : -378177434,
"longitudeE7" : 1429653949,
"accuracy" : 34
}
..
其中许多位置将是相同的物理位置(例如用户的家),但显然经度和纬度可能不完全相同。
我想使用 Elastic Search 及其地理功能来生成最常见位置的排名列表,如果位置在彼此之间(例如 100m)之内,则这些位置被认为是相同的?
对于每个常见位置,如果可能的话,我还想要他们在该位置的所有时间戳的列表!
非常感谢一个示例查询让我开始!
非常感谢。
【问题讨论】:
-
您能否展示一个示例文档和您的映射?让人们更容易引导您的问题并尝试解决它。
-
嗨,瓦尔。好点子!我已经包含了上面的示例数据。
-
如果此 GeoJSON 数据被正确索引,那么您可以使用
geohash_grid聚合来查看每个位置在二维空间(约 100m 矩形)中的分布情况。您还可以将其与date_histogram聚合结合起来,看看这些点是如何及时分布的。 -
优秀的 Val,听起来很完美。我对 Elastic Search 和 Geo 的东西完全陌生,所以我会看看我是否可以提出一个查询并让你知道它是否有效。
-
首先,确保正确索引您的数据。这样的事情应该可以帮助您入门:
{"location":{"lat":40,"lon":70}, "timestamp": 1458432895726, "accuracy": 15},其中location是geo_point,timestamp和accuracy是long
标签: amazon-web-services elasticsearch geolocation location geojson