GWT openlayers,DrawFeature线条样式

时间:2013-11-23 12:17:25

标签: java gwt openlayers gwt-openlayers

我正在使用gwt openlayers在地图上绘制一些线串。我想改变绘制功能线的外观。我注意到PathHandler类有setStyle方法,但使用此方法设置样式不会改变线条外观。

private DrawFeature createDrawFeature() {
    DrawFeatureOptions options = new DrawFeatureOptions();
    options.onFeatureAdded(getStyle());
    PathHandler handler = new PathHandler();
    handler.setStyle(style);
    return new DrawFeature(layer, handler, options );
}
private Style getStyle() {
    Style style = new Style();
    style.setStrokeColor("#ffffff");
    style.setStrokeWidth(2.0);
    return style;
}

我试图设置不同的样式选项,但没有效果。 有谁知道如何改变DrawFeature线的外观?

1 个答案:

答案 0 :(得分:1)

执行绘图的处理程序(点,路径或多边形)如果草图的样式(功能完成之前)负责。

所以要设置草图的样式:

    //Create a style. We want a blue dashed line.
    final Style drawStyle = new Style(); //create a Style to use
    drawStyle.setFillColor("white");
    drawStyle.setGraphicName("x");
    drawStyle.setPointRadius(4);
    drawStyle.setStrokeWidth(3);
    drawStyle.setStrokeColor("#66FFFF");
    drawStyle.setStrokeDashstyle("dash");

    //create a StyleMap using the Style
    StyleMap drawStyleMap = new StyleMap(drawStyle);

    //Create PathHanlderOptions using this StyleMap
    PathHandlerOptions phOpt = new PathHandlerOptions();
    phOpt.setStyleMap(drawStyleMap);   

    //Create DrawFeatureOptions and set the PathHandlerOptions (that have the StyleMap, that have the Style we wish)
    DrawFeatureOptions drawFeatureOptions = new DrawFeatureOptions();
    drawFeatureOptions.setHandlerOptions(phOpt);

    PathHandler pathHanlder = new PathHandler();

    // Create the DrawFeature control to draw on the map, and pass the DrawFeatureOptions to control the style of the sketch
    final DrawFeature drawLine = new DrawFeature(vectorLayer, pathHanlder, drawFeatureOptions);
    map.addControl(drawLine);
    drawLine.activate();

我还为她展示了一个示例:http://demo.gwt-openlayers.org/gwt_ol_showcase/GwtOpenLayersShowcase.html?example=DrawFeature%20style%20example