【问题标题】:Streaming JSON data [duplicate]流式传输 JSON 数据 [重复]
【发布时间】:2013-09-23 13:03:28
【问题描述】:

当用户更改其位置时,我需要将图钉加载到地图(Google Maps Android API v2),但我想“顺利”加载它们,而不必等待整个结果集被下载以添加所有图钉一次。

是否有任何网络服务或不同的技术允许我从服务器以流的形式读取数据(如 JSON)并将图钉异步添加到地图?

谢谢。

【问题讨论】:

  • 我假设您控制着服务器?如果是这样,为什么不简单地使用 Transfer-Encoding: chunked 并写出 JSON 片段?
  • @JulianoNunesSilvaOliveira:这是特定 HTTP 客户端的详细信息。您的客户端(大概是在 android 上)没有 onData()bufferReceived 事件吗?
  • 我发现 Volley http 库有一个onResponse 事件。我回家后试试。谢谢

标签: android web-services node.js


【解决方案1】:

我可以想到两种异步加载谷歌积分的方法

  1. 使用服务和广播,使用 IntentService(或服务类)解析 JSON 并在您获得解析结果时广播结果。有一个广播接收器来收听这些广播。在广播接收器的 onHandle 方法中,您可以继续创建新标记。 (Tutorial)

  2. 使用 AsyncTask 和 onProgressUpdate 方法,您可以继续传递您的 json 解析结果,并且可以继续更新地图。

对于 JSON 的解析,我相信您可以使用任何解析技术来获取输入流。

我想我会建议第一种方法,因为如果您使用多线程,它会更加流畅,并且可以让您更好地控制。

希望对你有帮助

【讨论】:

    【解决方案2】:

    Oboe.js 是一个在 JSON 到达时读取它的工具。其他项目使用它来将大量点加载到 Google 地图中,但一次只显示一个。

    免责声明:这是我的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      相关资源
      最近更新 更多