gpt4 book ai didi

c# - 如何将推文限制在特定位置

转载 作者:太空宇宙 更新时间:2023-11-03 23:04:27 25 4
gpt4 key购买 nike

我正在尝试通过特定位置搜索 Twitter。我已经设法让它排除任何在我的半径范围之外进行地理标记的推文,但我也得到了绝大多数地理数据设置为空的推文。

var Twitter = new LinqToTwitter.TwitterContext(auth);

var GeoCode = new LinqToTwitter.Geo()
{
Latitude = 37.68,
Longitude = -97.33,
Accuracy = "20mi"
};

var geostring = $"{GeoCode.Latitude},{GeoCode.Longitude},{GeoCode.Accuracy}";

var searchResponse =
Twitter.Search
.Where(x => x.Type == SearchType.Search)
.Where(x => x.Query == "Trump") //I know people are tweeting this right now...
.Where(x => x.GeoCode == geostring)
.FirstOrDefault();

现在,如前所述,这排除了特别标记为在我的位置和半径之外的推文,但我还想排除没有位置数据集的推文。我是不是做错了什么,还是只需要提取不需要的数据,然后在事后过滤它?

最佳答案

您看到很多坐标为零的原因是因为很多人在他们的个人资料中关闭了位置信息。关于Twitter Search API ,没有排除空位置的选项。不过,您可以执行查询,然后执行 LINQ to Objects 查询来过滤结果,如下所示:

        var searchResponse =
await
Twitter.Search
.Where(x => x.Type == SearchType.Search)
.Where(x => x.Query == "Trump") //I know people are tweeting this right now...
.Where(x => x.GeoCode == geostring)
.FirstOrDefaultAsync();

var withGeoCode =
(from resp in searchResponse.Statuses
where resp.Coordinates.Latitude != 0 && resp.Coordinates.Longitude != 0
select resp)
.ToList();

顺便说一句,请注意 LINQ to Twitter 是 async,这就是我添加 async 关键字和 FirstOrDefaultAsync 运算符的原因。否则,您可能会因为竞争条件而出错或收不到结果。有时,我惊讶地发现非异步运算符仍然有效。如果推文没有地理标记,则 Coordinates Latitude/Longitude 属性将为 0,您可以在上面的代码中看到这一点。

关于c# - 如何将推文限制在特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41820720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com