2013-09-23 48 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地圖中,但每次只顯示一個點。

免責聲明:這是我的項目。