gpt4 book ai didi

java - 在 Android 上的 Google map View 上绘制多边形的问题

转载 作者:行者123 更新时间:2023-11-30 11:46:01 25 4
gpt4 key购买 nike

所以我正在为 Android 制作游戏,我需要在谷歌地图窗口上覆盖区域或多边形。

到目前为止,我做了以下事情:

    class polygonOverlay extends Overlay {
//this is the array of vertices we need to draw
GeoPoint[] vet;
Point[] points;
private float[] fVet;
//get the vertices

public polygonOverlay(GeoPoint[] v) {
vet = v;
points = new Point[v.length];
fVet = new float[(v.length)*2];

}

//this is how we draw it.
@Override
public void draw(Canvas canvas, MapView mapv, boolean shadow) {

super.draw(canvas,mapv, shadow);

//do some things
//set all the points to a point.
for(int i = 0; i < points.length; i++) {
points[i] = new Point();
}

//convert from the array of geoPoints to the array of points using the projection.
for(int i = 0; i < vet.length; i++){
projection.toPixels(vet[i], points[i]);

}

//convert the point to the float array
for(int i = 0; i < points.length; i++) {
fVet[2*i] = points[i].x;
fVet[(2*i)+1] = points[i].y;
}
//things be done...

//create a array of int colors.
int[] colorArray = new int[points.length];

for(int i = 0; i < points.length; i++) {
colorArray[i] = Color.RED;
}

//if we are drawing a shadow, then dont draw anything
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(4);
//lets draw some things.
canvas.drawLine(points[1].x, points[1].y, 200, 200, mPaint);
canvas.drawVertices(
Canvas.VertexMode.TRIANGLES,
fVet.length,
fVet,
0,
null,
0,
colorArray,
0,
null,
0,
0,
mPaint
);


}

}

但问题是它不会显示多边形。我已经尝试了所有方法,直到昨晚凌晨 2 点才这样做,但它就是行不通。

我开始认为这是我的手机而不是我的代码...

谁能看出我做错了什么?

最佳答案

多边形创建很简单:

首先定义一个Paint对象:

Paint mPaint = new Paint();
mPaint.setStrokeWidth(2); //2 pixel line width
mPaint.setColor(0xFF097286); //tealish with no transparency
mPaint.setStyle(Paint.Style.STROKE); //stroked, aka a line with no fill
mPaint.setAntiAlias(true); // no jagged edges, etc

然后绘制路径:

yourCanvas.drawPath(path,mPaint);

这是 map 覆盖的链接:android maps circle overlay, dynamically change radius?

关于java - 在 Android 上的 Google map View 上绘制多边形的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10023282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com