0
我想繪製谷歌地圖上的兩個geopoints之間的界限。我可以放置標記,但不能在它們之間畫線。我知道我錯過了一些微不足道的東西。DrawLine谷歌地圖不工作,谷歌地圖上的第一個定時器Android
//subscribedToMap is a MapView
subscribedToMap.getOverlays().add(new PathMarker(journey.getSourceGPSX(),
journey.getSourceGPSY(),
journey.getDestinationGPSX(),
journey.getDestinationGPSY())) ;
subscribedToMap.invalidate();
public class PathMarker extends Overlay {
private Double slat, slng, dlat, dlng;
public PathMarker(Double slat, Double slng, Double dlat, Double dlng) {
super();
this.slat = slat;
this.slng = slng;
this.dlat = dlat;
this.dlng = dlng;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
canvas.drawLine(slat.intValue(), slng.intValue(), dlat.intValue(),
dlng.intValue(), new Paint());
super.draw(canvas, mapView, shadow);
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
return (super.onTouchEvent(event, mapView));
}
}
編輯:我甚至嘗試
public void draw(Canvas canvas, MapView mapv, boolean shadow){
super.draw(canvas, mapv, shadow);
Paint mPaint = new Paint();
mPaint.setDither(true);
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(2);
GeoPoint gP1 = new GeoPoint(19240000,-99120000);
GeoPoint gP2 = new GeoPoint(37423157, -122085008);
Point p1 = new Point();
Point p2 = new Point();
Path path = new Path();
projection.toPixels(gP1, p1);
projection.toPixels(gP2, p2);
path.moveTo(p2.x, p2.y);
path.lineTo(p1.x,p1.y);
canvas.drawPath(path, mPaint);
}
與其說是直接回答你的問題,但你希望簽出v2谷歌地圖Android API在一週前發佈。它使多段線更容易一些。 https://developers.google.com/maps/documentation/android/ –