我正在使用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线的外观?
答案 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();