Java 使用图形对象为线着色

Java 使用图形对象为线着色,java,processing,Java,Processing,我有大约1000个点(gps坐标),我想使用展开地图库在地图上可视化。轨迹由彩色线(两点)组成。我想根据速度给线路上色(如果轨道上的速度低于20km/h,则应为红色,否则为绿色) 以下代码表示具有一种颜色的自定义线条: class MyPolygonMarker extends SimplePolygonMarker { public void draw(PGraphics pg, List<MapPosition> mapPositions) { pg.pu

我有大约1000个点(gps坐标),我想使用展开地图库在地图上可视化。轨迹由彩色线(两点)组成。我想根据速度给线路上色(如果轨道上的速度低于20km/h,则应为红色,否则为绿色)

以下代码表示具有一种颜色的自定义线条:

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();
}
}