Android 除了标题和代码片段,如何向标记添加额外数据?
问题:我的远程服务器为一个请求返回10倍的值。我解析了我的响应,并使用for循环在地图上添加了标记(在这里,我将信息添加到标题和代码段中)。(在这里,我想向标记添加额外数据,以便我可以在信息窗口单击事件中访问它) 在infoWindowClickListener中,我想访问额外的数据 如何向标记添加额外数据/如何访问特定标记的ph值数据单击(否则,我将获得所有标记的最后一个ph值) 我试过了Android 除了标题和代码片段,如何向标记添加额外数据?,android,json,google-maps-markers,google-maps-android-api-2,marker,Android,Json,Google Maps Markers,Google Maps Android Api 2,Marker,问题:我的远程服务器为一个请求返回10倍的值。我解析了我的响应,并使用for循环在地图上添加了标记(在这里,我将信息添加到标题和代码段中)。(在这里,我想向标记添加额外数据,以便我可以在信息窗口单击事件中访问它) 在infoWindowClickListener中,我想访问额外的数据 如何向标记添加额外数据/如何访问特定标记的ph值数据单击(否则,我将获得所有标记的最后一个ph值) 我试过了 private class HttpGetTask extends AsyncTask<Vo
private class HttpGetTask extends AsyncTask<Void, Void, String>
{
//URL and http stuff
}
@Override
protected void onPostExecute(String result) {
try {
json = new JSONArray(result);
for (int i = 0; i < json.length(); i++) {
Log.v("Response", result);
final JSONObject e = json.getJSONObject(i);
String point = e.getString("point");
Log.v("POINT", point);//Checking points
String phone1 = e.getString("ph");
Log.v("PH", phone1);//Checking phone numbers
String[] point2 = point.split(",");//Splitting points
double lat1 = Double.parseDouble(point2[0]);
double lng1 = Double.parseDouble(point2[1]);
Log.v("LLDN", "" + lat1 + "&" + lng1);
//Adding multiple markers
//can i add extra information here along with title and snippet
gMap.addMarker(new MarkerOptions()
.title(e.getString("name"))
.snippet(
e.getString("LS")+""+e.getString("ph") )
.position(new LatLng(lng1, lat1))
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.pmr)));
}
} catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
私有类HttpGetTask扩展异步任务
{
//URL和http内容
}
@凌驾
受保护的void onPostExecute(字符串结果){
试一试{
json=新的JSONArray(结果);
for(int i=0;i
是否可以将附加值以及标题和代码段附加到标记上。?
还是我解析的方式不对?不是最好的解决方案,但这就是我在应用程序中所做的 在活动/片段中将markersMap创建为私有字段
private Map<Marker, ExtraDataObj> markersMap = new HashMap<Marker, ExtraDataObj>();
在OnInfo窗口中,单击从markersMap获取额外数据
ExtraDataObj extraDataObj = new ExtraDataObj();
// extract and store all data you want in the extraDataObj
....
...
..
Marker marker = gMap.addMarker(new MarkerOptions()
.title(e.getString("name"))
.snippet(
e.getString("LS")+""+e.getString("ph") )
.position(new LatLng(lng1, lat1))
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.pmr)));
markersMap.put(marker, extraDataObj);
ExtraDataObj extraDataObj = markersMap.get(arg0)
虽然@worawee.s可以很好地工作,但是有一个更优雅的解决方案,可以让您向
标记器对象添加额外的信息。因此,要解决这个问题,您可以使用标记器的方法:
您可以使用此属性将任意对象与此标记关联。例如,该对象可以包含有关标记所表示内容的数据。这比存储单独的映射更容易。另一个示例是,您可以将与数据集中的ID对应的字符串ID关联
这没关系,我还提到了一个博客,他在博客中这样解释。但是我们可以向marker添加额外的自定义数据吗?这样我以后可以使用它。从google map v2 marker类引用(),我认为它目前没有你想要的。