Java JMapViewer: How can I change the color of a MapPolygon?

佐手、 提交于 2019-12-24 16:59:57

问题


I'm creating an application for drawing pollution information on a JMapViewer. I want to do this with MapPolygons, but I didn't find a good documentation about it. I succeeded to create new MapPolygons like this:

private MapPolygon getPolygon(double lat, double lon, Color col){
    List<Coordinate> coords = new ArrayList<>();

    //add all points to the list...

    MapPolygon poly = new MapPolygonImpl(coords); 
    return poly;
}

I'm wondering how I could change the color and remove the border of the MapPolygon. There is no function setColor or such...

I tried directly with the constructor, but this doesn't work:

MapPolygon poly = new MapPolygonImpl(coords, Color.RED, new BasicStroke(0));

Does anybody know how I can change the color of the MapPolygon? Thanks!


回答1:


Because MapPolygonImpl extends MapObjectImpl, MapPolygonImpl inherits setColor() and setBackColor() from MapObjectImpl. MapPolygonImpl uses these colors in its implementation of paint(). The colors are stored in the parent class's Style attribute, initialized by calling getDefaultStyle() during construction.

You can vary the alpha component of the chosen Color to achieve a variety of effects; the example below uses a 12.5% light gray.

MapPolygonImpl poly = new MapPolygonImpl(coords);
Color color = new Color(0x20202020, true);
poly.setColor(color);
poly.setBackColor(color);
poly.setStroke(new BasicStroke(0));
map.addMapPolygon(poly);

If the existing color is satisfactory, a similar effect may be achieved by setting the color to the background color.

MapPolygonImpl poly = new MapPolygonImpl(route);
poly.setColor(poly.getBackColor());



回答2:


Found it out. You have to create a layer and a style:

    Layer global = new Layer("Global");
    Style style = new Style();
    style.setBackColor(col);
    style.setColor(col);
    style.setStroke(new BasicStroke(0));
    MapPolygon poly = new MapPolygonImpl(global,"",coords,style);
    return poly;


来源:https://stackoverflow.com/questions/30757703/java-jmapviewer-how-can-i-change-the-color-of-a-mappolygon

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!