【问题标题】:How can I visualise tweets on a map in Processing?如何在 Processing 中的地图上可视化推文?
【发布时间】:2017-05-22 07:12:55
【问题描述】:

我正在尝试使用 twitter API 搜索关键字并获取该特定推文的位置,然后将其可视化到地图上。

我已经使用展开地图和 tilemill 成功创建了我的地图,我只是在推特部分苦苦挣扎。使用 twitter 4J 库,我尝试了以下代码,但无法将位置作为坐标。此外,一旦我得到坐标,我就不知道如何在我的地图上将它们可视化。

import twitter4j.*;
import twitter4j.api.*;
import twitter4j.auth.*;
import twitter4j.conf.*;
import twitter4j.json.*;
import twitter4j.management.*;
import twitter4j.util.*;
import twitter4j.util.function.*;



ConfigurationBuilder cb = new ConfigurationBuilder();
Twitter twitterInstance;
Query queryForTwitter;

void setup() {
 cb.setOAuthConsumerKey("**********");
 cb.setOAuthConsumerSecret("*******");
  cb.setOAuthAccessToken("*********");
  cb.setOAuthAccessTokenSecret("*********");

  twitterInstance = new TwitterFactory( cb.build()).getInstance();

  queryForTwitter = new Query("#nature");

  size(640, 440);
  background(0);
  FetchAndDrawTweets();
}

void FetchAndDrawTweets() {
 try {
    QueryResult result = twitterInstance.search(queryForTwitter);
    ArrayList tweets = (ArrayList) result.getTweets();
    for (int i=0; i<tweets.size(); i++) {
      Status t = (Status) tweets.get(i);
      String user = (t.getUser()).getLocation();
      text(user + ":" , 20,15+i*15);
    }
  } 
  catch(TwitterException te) {
    println("Couldn't connect:" + te);
  }
}here

我对处理很陌生,所以请耐心等待我,因为我什至不知道我是否以正确的方式进行处理。

任何帮助将不胜感激!

【问题讨论】:

    标签: twitter processing twitter4j tweets unfoldingmap


    【解决方案1】:

    很好地将您的问题分解为较小的子问题。将“获取推文和位置”步骤与“在地图上显示内容”步骤分开是个好主意。干得好。

    至于获取推文的位置,你应该看两个地方:

    The Twitter4J JavaDocs:这是 Twitter4J 库中可用的每个类、函数和变量的列表。这应该是您的第一站。你在这里看到什么有用的东西吗?具体来说,Status 类有一个看起来很有前途的getGeoLocation() 函数。

    The Twitter API:这是构建 Twitter4J 库的底层 JavaScript API。查看此文档以了解有关 Twitter4J 库下发生的事情的更多详细信息。具体来说,this page 表示 geo 对象已被弃用,您应该改用 coordinates 字段。

    所以我首先要尝试的是getGeoLocation() 函数。但请注意,并非每条推文都有位置,因为用户可以禁用位置跟踪。另请注意,如果底层 JavaScript 库不再提供 geo 对象,并且 Twitter4J 库正在使用它来填充其 getGeoLocation() 函数,那么您将无法通过 Twitter4J 到达该位置。不过我还没有测试过。

    【讨论】:

    • 感谢您的回复。我现在已经设法按照您的建议使用 getGeoLocation() 函数获取推文位置....谢谢!我现在想将这些坐标绘制到我的地图上,但不知道该怎么做。此外,我的推特搜索仅返回大约 3 条推文(取决于我的搜索词),这是因为我的设置方式吗?我使用了包含计时器的示例的一部分,但不知道它是否限制了它返回的推文数量?
    猜你喜欢
    • 1970-01-01
    • 2019-10-19
    • 2020-01-02
    • 2012-08-30
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多