package net.basilwang.fresh;
import java.util.ArrayList;
import java.util.List;
import net.basilwang.map.BuildOfSchool;
import net.basilwang.map.Constants;
import android.os.AsyncTask;
import com.amap.api.maps.AMap;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.PolylineOptions;
public class GetMapPoints extends
AsyncTask<Object, Object, ArrayList<ArrayList<LatLng>>> {
private PointOfSegmentService PointService;
private PointOfStructureService StructureService;
private AMap map;
private int id;// 判定校区
private BuildOfSchool[] builds;
private ArrayList<ArrayList<LatLng>> route_schooList;
private ArrayList<Marker> markers = new ArrayList<Marker>();
private boolean DrawRoute;
@Override
protected void onPostExecute(ArrayList<ArrayList<LatLng>> result) {
super.onPostExecute(result);
route_schooList = result;
if (DrawRoute) {
addLoadToMap();
}
// addBuilds();
addMarkers();
}
@Override
protected ArrayList<ArrayList<LatLng>> doInBackground(Object... params) {
PointService = (PointOfSegmentService) params[0];
StructureService = (PointOfStructureService) params[1];
map = (AMap) params[2];
id = (Integer) params[3];
DrawRoute = (Boolean) params[4];
builds = setBuildOfSchools(StructureService.getPoint(id));
return PointService.getMapList(id);
}
public ArrayList<Marker> getMarkers() {
return markers;
}
private BuildOfSchool[] setBuildOfSchools(List<PointOfStructure> buildList) {
BuildOfSchool[] builds_school = new BuildOfSchool[buildList.size()];
for (int i = 0; i < builds_school.length; i++) {
builds_school[i] = new BuildOfSchool(buildList.get(i).getName(),
buildList.get(i).getLatitude(), buildList.get(i)
.getLongitude(), buildList.get(i).getWidth(),
buildList.get(i).getHeight(), buildList.get(i).getMode(),
buildList.get(i).getColor());
}
return builds_school;
}
public void addLoadToMap() {
for (int i = 0; i < route_schooList.size(); i++) {
map.addPolyline(new PolylineOptions()
.addAll(route_schooList.get(i)).color(Constants.color_road)
.width(15));
}
}
/**
* 添加Marker
* */
public void addMarkers() {
for (int i = 0; i < markers.size(); i++) {
markers.get(i).destroy();
}
int[] icons = null;
switch (id) {
case Constants.MapId_Mingshui:
icons = Constants.icons_mingshui;
break;
case Constants.MapId_Shengjing:
icons = Constants.icons_shengjing;
break;
case Constants.MapId_Yanshan:
icons = Constants.icons_yanshan;
break;
case Constants.MapId_Shungeng:
icons = Constants.icons_shungeng;
break;
}
for (int i = 0; i < builds.length; i++) {
if (icons[i] != 0) {
markers.add(builds[i].addMarkerToMap(map, icons[i]));
}
}
}
/**
* 添加建筑物形状
* */
public void addBuilds() {
for (int i = 0; i < builds.length; i++) {
builds[i].drawBuilds(map,
Constants.color_build[builds[i].getColor()]);
}
}
}