Java 使用图形对象为线着色
我有大约1000个点(gps坐标),我想使用展开地图库在地图上可视化。轨迹由彩色线(两点)组成。我想根据速度给线路上色(如果轨道上的速度低于20km/h,则应为红色,否则为绿色) 以下代码表示具有一种颜色的自定义线条:Java 使用图形对象为线着色,java,processing,Java,Processing,我有大约1000个点(gps坐标),我想使用展开地图库在地图上可视化。轨迹由彩色线(两点)组成。我想根据速度给线路上色(如果轨道上的速度低于20km/h,则应为红色,否则为绿色) 以下代码表示具有一种颜色的自定义线条: class MyPolygonMarker extends SimplePolygonMarker { public void draw(PGraphics pg, List<MapPosition> mapPositions) { pg.pu
class MyPolygonMarker extends SimplePolygonMarker {
public void draw(PGraphics pg, List<MapPosition> mapPositions) {
pg.pushStyle();
pg.strokeWeight(2);
pg.fill(255,0,0,0);
pg.stroke(#2688AD);
pg.beginShape();
for(int i=0; i<mapPositions.size();i++)
{
pg.vertex(mapPositions.get(i).x, mapPositions.get(i).y);
}
pg.endShape();
pg.popStyle();
}
}
MyPolygonMarker类扩展了SimplePolygonMarker{
公共空白绘图(绘图页、列表地图位置){
pg.pushStyle();
pg.冲程重量(2);
pg.fill(255,0,0,0);
pg.行程(#2688AD);
pg.beginShape();
for(int i=0;i可能只是需要将
beginShape()
放在for循环之前
在任何情况下,我们都提供了一个例子,它似乎做了一些非常接近您试图实现的事情:
请注意,在该示例中,我们是如何从属性中读取速度的(您不必这样做,但这是一种很好的做法)。
您可以找到完整的示例(包括应用程序和带有速度数据的GPX文件的自定义读取器)。您能否发布一个包含一些硬编码数据的应用程序,以便我们可以实际运行您的代码?
class MyPolygonMarker extends SimplePolygonMarker {
public void draw(PGraphics pg, List<MapPosition> mapPositions) {
pg.pushStyle();
pg.strokeWeight(2);
pg.fill(255,0,0,0);
for(int i=0; i<mapPositions.size();i++)
{
Float speed_value = Float.parseFloat(lines[i].split("\t")[7]);
if(speed_value > 20)
{
pg.stroke(green);
pg.beginShape();
}
else
{
pg.stroke(red);
pg.beginShape();
}
pg.vertex(mapPositions.get(i).x, mapPositions.get(i).y);
}
pg.endShape();
pg.popStyle();
}
}