高德地图-绘制个人历史位置路线(二)

2014-11-24 10:43:53 · 作者: · 浏览: 2
tude(cursor.getDouble(1));
point.setLongitutde(cursor.getDouble(2));
Log.d("route",point.toString());
return point;
}
}

3.POJO类:
[java]
package com.example.touchpoint;

public class LocationPoint {

private long _id;
private double latitude;
private double longitutde;

public long get_id() {
return _id;
}

public void set_id(long _id) {
this._id = _id;
}

public double getLatitude() {
return latitude;
}

public void setLatitude(double latitude) {
this.latitude = latitude;
}

public double getLongitutde() {
return longitutde;
}

public void setLongitutde(double longitutde) {
this.longitutde = longitutde;
}

@Override
public String toString() {
return "LocationPoint [_id=" + _id + ", latitude=" + latitude
+ ", longitutde=" + longitutde + "]";
}
}

4.ItemizedOverlay类
[java]
package com.example.touchpoint;

import java.util.ArrayList;
import java.util.List;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.util.Log;

import com.amap.mapapi.core.GeoPoint;
import com.amap.mapapi.core.OverlayItem;
import com.amap.mapapi.map.ItemizedOverlay;

import com.amap.mapapi.map.MapView;
import com.amap.mapapi.map.Projection;

public class RouteItemizedOverlay extends ItemizedOverlay{

private List list = new ArrayList();

public RouteItemizedOverlay(Drawable d) {
super(boundCenterBottom(d));
}

@Override
protected OverlayItem createItem(int id) {
return list.get(id);
}

@Override
public int size() {
return list.size();

}

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {


Projection proj = mapView.getProjection();
Path path = new Path();
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(3);

for (int i = 0; i < this.size(); i++) {
OverlayItem item = (OverlayItem)createItem(i);
GeoPoint gp = item.getPoint();
Log.d("aa",gp.getLatitudeE6() +" " + gp.getLongitudeE6());
Point mPoint = new Point();
proj.toPixels(gp, mPoint);

if(i == 0) {
path.moveTo(mPoint.x, mPoint.y);
Log.d("path","[" + mPoint.x + "," + mPoint.y+ "]");
}else{
path.lineTo(mPoint.x, mPoint.y);
Log.d("path","[" + mPoint.x + "," + mPoint.y+ "]");
}
//canvas.drawText("ca", mPoint.x, mPoint.y, new Paint());
}
path.close();

canvas.drawPath(path, paint);

super.draw(canvas, mapView, shadow);
}
public void addMyRoute(List points) {

for(LocationPoint point : points) {
GeoPoint gp = new GeoPoint((int)(point.getLatitude()*1E6),(int)(point.getLongitutde()*1E6));
OverlayItem myItem = new OverlayItem(gp, "title", "snippet");