在使用鹰眼的时候,发现系统提供的属性有时并不能满足我们实际需要,这时就需要使用自定义属性了。下面重写OnCustomAttributeListener ()
如下 :
OnCustomAttributeListener customAttributeListener = new OnCustomAttributeListener() {
@Override
public Map<String, String> onTrackAttributeCallback() {
Map<String, String> map = new HashMap<>();
String trace_flag = String.valueOf(CommonUtil.getCurrentTime());//轨迹分段标识
map.put("trace_flag", trace_flag);
return map;
}
@Override
public Map<String, String> onTrackAttributeCallback(long l) {
return null;
}
};
调用这个事件:
trackApp.mLBSTraceClient.setOnCustomAttributeListener(customAttributeListener);
在查询轨迹的onHistoryTrackCallback
中,我们来获取自定义的属性:
List<TrackPoint> points = response.getTrackPoints();
if (null != points) {
for (TrackPoint trackPoint : points) {
if (!CommonUtil.isZeroPoint(trackPoint.getLocation().getLatitude(),
trackPoint.getLocation().getLongitude())) {
trackPoints.add(MapUtil.convertTrace2Map(trackPoint.getLocation()));
Log.e("LHC", "entityName:"+trackApp.entityName+",attr:"+trackPoint.getColumns().get("trace_flag")+",locationMsg:"+trackPoint.toString());
}
}
注意:trackPoint.getColumns().get("trace_flag")
就是获取属性的值
这样在代码中设置自定义属性就完成了。下面登录百度地图开发平台,进入“轨迹管理平台”,找到相应的serivce_id
,点击“设置”,如下图:
在设置页面选择“trace属性字段”,然后进行属性自定义(要和代码中的属性名称一致)。这样就完成了属性的自定义。