2013-09-23 16 views
0

我需要在用户更改其位置时将引脚加载到地图(Google Maps Android API v2),但我想要“平滑”加载它们,而不必等待整个结果集被下载到一次添加所有引脚。流式JSON数据

是否有任何Web服务或不同的技术,允许我从服务器读取数据(如JSON)作为流并异步添加引脚到地图?

谢谢。

+0

我假设你在控制服务器?如果是这样,为什么不简单地使用'Transfer-Encoding:chunked'并写出JSON片段? –

+0

@NitzanShaked as this [link](http://stackoverflow.com/questions/16736233/web-api-as-a-proxy-and-chunked-transfer-encoding)点,HttpClient将分块消息,因此它将等待整个响应被处理,因此它可以将地址添加到地图中。 –

+0

@JulianoNunesSilvaOliveira:这是特定HTTP客户端的细节。你的客户端(大概是android)有一个'onData()'或'bufferReceived'事件吗? –

回答

0

我能想到的接近这种用于异步加载谷歌的两种方式分

  1. 使用服务和广播,使用一个IntentService(或服务类)来解析JSON和广播的结果,当你在解析中得到结果。有一个广播接收器将会收听这些广播。在广播接收器的onHandle方法中,您可以不断创建新的标记。 (Tutorial

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

至于JSON解析,我相信你可以使用任何分析技术来获得的输入流。

我想我会建议第一种方法,因为如果您使用多线程,它会更加流畅,并为您提供更多控制。

希望这有助于

0

Oboe.js是阅读JSON,因为它到达的工具。其他项目使用它将很多点加载到Google地图中,但每次只显示一个点。

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