package net.basilwang.fresh;
import java.util.ArrayList;
import java.util.List;
import net.basilwang.dao.DAOHelper;
import net.basilwang.dao.IDAOService;
import android.content.Context;
import android.database.Cursor;
import android.util.Log;
import com.amap.api.maps.model.LatLng;
public class PointOfSegmentService implements IDAOService {
private DAOHelper daoHelper;
public PointOfSegmentService(Context context) {
this.daoHelper = new DAOHelper(context);
}
public void save(PointOfSegment point) {
String sql = "INSERT INTO PointOfSegment(Id,Latitude,Longitude,SegmentId,MapId) VALUES (?,?,?,?,?)";
Object[] bindArgs = { point.getId(), point.getLatitude(),
point.getLongitude(), point.getSegmentId(), point.getMapId() };
daoHelper.insert(sql, bindArgs);
}
public List<String> getSegmentId(int id){
String sql = "SELECT DISTINCT SegmentId FROM PointOfSegment where mapId=?";
String sa[]={String.valueOf(id)};
Cursor result = daoHelper.query(sql, sa);
List<String> list = new ArrayList<String>();
while (result.moveToNext()) {
String str=result.getString(0);
list.add(str);
}
daoHelper.closeDB();
return list;
}
public List<PointOfSegment> getAll(int id){
String sql="select * from pointofsegment where mapid=?";
String sa[]={String.valueOf(id)};
Cursor result = daoHelper.query(sql, sa);
List<PointOfSegment> list=new ArrayList<PointOfSegment>();
while (result.moveToNext()) {
PointOfSegment point=new PointOfSegment();
point.setId(result.getInt(0));
point.setLatitude(result.getDouble(1));
point.setLongitude(result.getDouble(2));
point.setSegmentId(result.getInt(3));
point.setMapId(result.getInt(4));
list.add(point);
}
return list;
}
public ArrayList<ArrayList<LatLng>> getMapList(int id){
List<String> SegMentIdList=getSegmentId(id);
List<PointOfSegment> PointList=getAll(id);
ArrayList<ArrayList<LatLng>> list =new ArrayList<ArrayList<LatLng>>();
for(int i=0;i<SegMentIdList.size();i++){
ArrayList<LatLng> list2=new ArrayList<LatLng>();
int segmentId=Integer.parseInt(SegMentIdList.get(i));
Log.v("tag", "sId"+segmentId);
for(int j=0;j<PointList.size();j++){
if(PointList.get(j).getSegmentId()==segmentId){
LatLng point=new LatLng(PointList.get(j).getLatitude(),PointList.get(j).getLongitude());
list2.add(point);
}
}
list.add(list2);
}
return list;
}
@Override
public void deleteAccount() {
// TODO Auto-generated method stub
}
}