javaだけを使用して、つまりasp.net、php、または他の言語を使用せずに、GoogleマップAPIでマーカーを接続する方法は? 私はただの初心者です。Google android プロジェクトの対応する場所を示す複数のマーカーがマップ上にあります。
質問する
1735 次
1 に答える
1
(マーカーの表示に使用される をOverlay
使用する代わりに)独自のクラスを作成し、線を描画するメソッドを実装します。マーカーを表示するために使用する通常のオーバーレイを追加する前に、このオーバーレイを次のように追加します。ItemizedOverlay
draw()
MapView
mMapView.getOverlays().add(mPathOverlay);
mMapView.getOverlays().add(mMarkersOverlay);
クラスは次のPathOverlay
ようになります。位置は、すでに s に変換されているマーカーの位置になりますGeoPoint
。
public class PathOverlay extends Overlay {
private List<GeoPoint> mPositions;
private Path mPath;
private Paint mPathPaint;
private Point mHelperPoint = new Point();
public PathOverlay(List<GeoPoint> positions) {
mPositions = positions;
mPath = new Path();
mPathPaint = new Paint();
mPathPaint.setColor(0xDDA4C639);
mPathPaint.setStyle(Paint.Style.STROKE);
// add more path styling here
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (shadow) {
return; // path has no shadow
}
mPath.reset();
boolean start = true;
Point prev = new Point();
for (Position p : mPositions) {
mapView.getProjection().toPixels(p.geoPoint, mHelperPoint);
if (start) {
mPath.moveTo(mHelperPoint.x, mHelperPoint.y);
prev.set(mHelperPoint.x, mHelperPoint.y);
start = false;
} else {
int dx = prev.x - mHelperPoint.x;
int dy = prev.y - mHelperPoint.y;
mPath.lineTo(mHelperPoint.x, mHelperPoint.y);
prev.set(mHelperPoint.x, mHelperPoint.y);
}
}
canvas.drawPath(mPath, mPathPaint);
}
}
于 2012-11-18T19:13:07.060 に答える