2013-07-16 103 views
0

的信息窗口我想送一些數據的片段的信息窗口(標記的對話),但是類的MarkerOptions只定義方法是.snippet(字符串)設置窗口的正文文本將數據發送至谷歌地圖

現在我用這個escamotage:

map.addMarker( 
    new MarkerOptions() 
     .title(title) 
     .snippet(m.getID() + " " + m.getVel().toString() + " " + m.getTime() + " " + color)); 

[...]

String[] s = marker.getSnippet().split(" "); 
    id = s[0];   
    vel = s[1]; 
    time = s[2]; 
    color = s[3]; 

但不是一個很好的解決方案。

我可以在其他模式下發送數據嗎? 我可以重新定義和成本MarkerOptions嗎?

回答

3

您可以使用GSON庫,並轉換你反對JSON和設置JSON的片段,並在解析你可以轉換到JSON對象直接,最好的解決辦法

+0

我想這個解決方案 – Tirrel

1

我可以在其他模式下發送數據嗎?

是的。通常的方法是使用

private Map<Marker, YourModel> markerToModelMapping; 

當添加標記時,也將其放入此映射中。

然後在GoogleMap後回調:

YourModel data = markerToModelMapping.get(marker_method_param); 

你也可以嘗試Android Maps Extensions,增加了Marker.getDataMarker.setData方法,這樣你就可以直接而無需使用任何Map對象分配給Marker

我可以重新定義和耗費MarkerOptions嗎?

0

作者的最終解決方案(從問題中提取編輯):

發送標記爲JSON:

String Json = new Gson().toJson(myMarkerInfo); 
map.addMarker(new MarkerOptions().snippet(Json)); 

檢索JSON:

Gson gson = new GsonBuilder().create(); 
MarkerInfo m = gson.fromJson(marker.getSnippet(), MarkerInfo.class);