Search in sources :

Example 1 with Style

use of ol.style.Style in project gwt-ol3 by TDesjardins.

the class MarkerExample method show.

/* (non-Javadoc)
     * @see de.desjardins.ol3.demo.client.example.Example#show() */
@Override
public void show(String exampleId) {
    // create a point
    Coordinate coordinate1 = OLFactory.createCoordinate(4e6, 2e6);
    Point point1 = new Point(coordinate1);
    // create feature
    FeatureOptions featureOptions = OLFactory.createOptions();
    featureOptions.setGeometry(point1);
    Feature feature = new Feature(featureOptions);
    Collection<Feature> features = new Collection<Feature>();
    features.push(feature);
    // create source
    VectorOptions vectorSourceOptions = OLFactory.createOptions();
    vectorSourceOptions.setFeatures(features);
    Vector vectorSource = new Vector(vectorSourceOptions);
    // create style
    StyleOptions styleOptions = new StyleOptions();
    IconOptions iconOptions = new IconOptions();
    iconOptions.setSrc("https://openlayers.org/en/v3.20.1/examples/data/icon.png");
    Icon icon = new Icon(iconOptions);
    styleOptions.setImage(icon);
    Style style = new Style(styleOptions);
    VectorLayerOptions vectorLayerOptions = OLFactory.createOptions();
    vectorLayerOptions.setSource(vectorSource);
    vectorLayerOptions.setStyle(style);
    ol.layer.Vector vectorLayer = new ol.layer.Vector(vectorLayerOptions);
    // create a OSM-layer
    XyzOptions osmSourceOptions = OLFactory.createOptions();
    Osm osmSource = new Osm(osmSourceOptions);
    LayerOptions osmLayerOptions = OLFactory.createOptions();
    osmLayerOptions.setSource(osmSource);
    Tile osmLayer = new Tile(osmLayerOptions);
    // create a view
    View view = new View();
    Coordinate centerCoordinate = OLFactory.createCoordinate(0, 0);
    view.setCenter(centerCoordinate);
    view.setZoom(2);
    // create the map
    MapOptions mapOptions = new MapOptions();
    mapOptions.setTarget(exampleId);
    mapOptions.setView(view);
    Collection<Base> lstLayer = new Collection<Base>();
    lstLayer.push(osmLayer);
    lstLayer.push(vectorLayer);
    mapOptions.setLayers(lstLayer);
    Map map = new Map(mapOptions);
    // add some controls
    map.addControl(new ScaleLine());
    DemoUtils.addDefaultControls(map.getControls());
    // add some interactions
    map.addInteraction(new KeyboardPan());
    map.addInteraction(new KeyboardZoom());
    map.addControl(new Rotate());
}
Also used : XyzOptions(ol.source.XyzOptions) ScaleLine(ol.control.ScaleLine) KeyboardPan(ol.interaction.KeyboardPan) Rotate(ol.control.Rotate) MapOptions(ol.MapOptions) Feature(ol.Feature) LayerOptions(ol.layer.LayerOptions) VectorLayerOptions(ol.layer.VectorLayerOptions) FeatureOptions(ol.FeatureOptions) IconOptions(ol.style.IconOptions) Style(ol.style.Style) Vector(ol.source.Vector) Osm(ol.source.Osm) StyleOptions(ol.style.StyleOptions) Tile(ol.layer.Tile) Point(ol.geom.Point) View(ol.View) Base(ol.layer.Base) VectorLayerOptions(ol.layer.VectorLayerOptions) Coordinate(ol.Coordinate) KeyboardZoom(ol.interaction.KeyboardZoom) Collection(ol.Collection) Icon(ol.style.Icon) Map(ol.Map) VectorOptions(ol.source.VectorOptions)

Example 2 with Style

use of ol.style.Style in project gwt-ol3 by TDesjardins.

the class VectorTest method testVectorLayer.

@SuppressWarnings({ "static-method", "javadoc" })
public void testVectorLayer() {
    injectUrlAndTest(() -> {
        VectorLayerOptions vectorLayerOptions = new VectorLayerOptions();
        assertNotNull(vectorLayerOptions);
        Vector vectorLayer = new Vector(vectorLayerOptions);
        assertTrue(vectorLayer instanceof Base);
        assertTrue(vectorLayer instanceof Vector);
        vectorLayer.setStyle(new Style());
        assertTrue(vectorLayer.getStyle() instanceof Style);
        assertTrue(vectorLayer.getStyles() instanceof Style[]);
        Style[] styles = { new Style(), new Style() };
        vectorLayer.setStyles(styles);
        assertTrue(vectorLayer.getStyle() instanceof Style);
        assertTrue(vectorLayer.getStyles() instanceof Style[]);
        assertTrue(vectorLayer.getStyles().length == 2);
        vectorLayer.setStyleFunction((Feature feature) -> {
            return null;
        });
        assertTrue(vectorLayer.getStyle() == null);
        assertTrue(vectorLayer.getStyleFunction() instanceof GenericFunction);
    });
}
Also used : Style(ol.style.Style) GenericFunction(ol.GenericFunction) Feature(ol.Feature)

Example 3 with Style

use of ol.style.Style in project gwt-ol3 by TDesjardins.

the class Measure method start.

/**
 * Start measuring using existing interaction.
 *
 * @param type
 *            measure geometry type
 * @param listener
 *            {@link MeasureListener}
 * @param immediate
 *            Fire events on every change to the measured geometry? If false
 *            only one event after finishing is fired. (default is true)
 * @param persist
 *            Keep the temporary measurement sketch drawn after the
 *            measurement is complete. The geometry will persist until a new
 *            measurement is started, the control is deactivated, or
 *            {@link #stop()} is called.
 */
private void start(String type, MeasureListener listener, boolean immediate, boolean persist) {
    // clean up old instance
    stop();
    this.listener = listener;
    // set up interaction
    DrawOptions drawOptions = OLFactory.createOptions();
    drawOptions.setType(type);
    // use a special style?
    if (style != null) {
        drawOptions.setStyle(style);
    }
    draw = OLFactory.createDraw(drawOptions);
    // persist measured features?
    if (persist) {
        // set up overlay options
        VectorLayerOptions voptions = OLFactory.createLayerOptionsWithSource(OLFactory.createVectorSource());
        if (style != null) {
            Style[] styles = new Style[1];
            styles[0] = style;
            voptions.setStyle(styles);
        } else {
            // create a default style resembling the default editing style,
            // but adding a border to polygons
            Style sPoly = OLFactory.createStyle(OLFactory.createFill(OLFactory.createColor(255, 255, 255, 0.5)));
            Style sLine1 = OLFactory.createStyle(OLFactory.createStroke(OLFactory.createColor(255, 255, 255, 1), 5));
            Style sLine2 = OLFactory.createStyle(OLFactory.createStroke(OLFactory.createColor(0, 153, 255, 1), 3));
            // combine all styles
            Style[] s = OLUtil.pushItem(OLUtil.combineStyles(sPoly, sLine1), sLine2);
            voptions.setStyle(s);
        }
        // create an overlay and attach it to the map
        persistOverlay = OLFactory.createVector(voptions);
        persistOverlay.setMap(map);
    }
    // set up projection to be used
    proj = map.getView().getProjection();
    map.addInteraction(draw);
    // set up event handlers
    OLUtil.observe(draw, "drawstart", new EventListener<Draw.Event>() {

        @Override
        public void onEvent(Draw.Event event) {
            // remember measure feature
            sketch = event.getFeature();
            // clean up overlay
            if (persistOverlay != null) {
                persistOverlay.<ol.source.Vector>getSource().clear(false);
            }
        }
    });
    OLUtil.observe(draw, "drawend", new EventListener<Draw.Event>() {

        @Override
        public void onEvent(Draw.Event event) {
            // fire event and clean up
            fireMeasureEvent();
            // persist feature?
            if (persistOverlay != null) {
                persistOverlay.<ol.source.Vector>getSource().addFeature(sketch);
            }
            sketch = null;
        }
    });
    // handle mouse move if immediate updates are requested
    if (immediate) {
        // enable mouse move events on the viewport
        Element elem = map.getViewport();
        com.google.gwt.user.client.Event.sinkEvents(elem, com.google.gwt.user.client.Event.ONMOUSEMOVE);
        // remember old event listener before chaining this listener
        // in-between
        chainedListener = com.google.gwt.user.client.Event.getEventListener(elem);
        com.google.gwt.user.client.Event.setEventListener(elem, new com.google.gwt.user.client.EventListener() {

            @Override
            public void onBrowserEvent(com.google.gwt.user.client.Event event) {
                // check for mouse move events only
                if (event.getType() == "mousemove") {
                    // check if interaction is active and fire event
                    if (draw.getActive()) {
                        fireMeasureEvent();
                    }
                }
                // call chained handler
                if (chainedListener != null) {
                    chainedListener.onBrowserEvent(event);
                }
            }
        });
        eventListenerNeedsCleanup = true;
    }
    // set flag
    isActive = true;
}
Also used : Draw(ol.interaction.Draw) Element(com.google.gwt.dom.client.Element) VectorLayerOptions(ol.layer.VectorLayerOptions) DrawOptions(ol.interaction.DrawOptions) Style(ol.style.Style) MeasureEvent(ol.event.MeasureEvent)

Example 4 with Style

use of ol.style.Style in project gwt-ol3 by TDesjardins.

the class OLUtilTest method testOLUtil.

public void testOLUtil() {
    injectUrlAndTest(() -> {
        Style[] styles = { new Style(), new Style() };
        Style newStyle = new Style();
        assertTrue(styles.length == 2);
        OLUtil.pushItem(styles, newStyle);
        assertTrue(styles.length == 3);
        Style[] styles1 = { new Style(), new Style() };
        Style[] styles2 = { new Style(), new Style(), new Style() };
        assertTrue(styles1.length == 2);
        assertTrue(styles2.length == 3);
        Style[] combinedStyles = OLUtil.concatArrays(styles1, styles2);
        assertNotNull(combinedStyles);
        assertTrue(combinedStyles.length == 5);
    });
}
Also used : Style(ol.style.Style)

Example 5 with Style

use of ol.style.Style in project gwt-ol3 by TDesjardins.

the class FeatureTest method testFeature.

public void testFeature() {
    injectUrlAndTest(() -> {
        Feature feature = new Feature();
        assertNotNull(feature);
        assertTrue(feature instanceof Object);
        assertTrue(feature instanceof Observable);
        feature.setId(FEATURE_ID);
        assertEquals(FEATURE_ID, feature.getId());
        feature.setGeometryName(GEOMETRY_NAME);
        assertEquals(GEOMETRY_NAME, feature.getGeometryName());
        feature.setStyle(new Style());
        assertTrue(feature.getStyle() instanceof Style);
        assertTrue(feature.getStyles() instanceof Style[]);
        Style[] styles = { new Style(), new Style() };
        feature.setStyles(styles);
        assertTrue(feature.getStyle() instanceof Style);
        assertTrue(feature.getStyles() instanceof Style[]);
        assertTrue(feature.getStyles().length == 2);
        feature.setStyleFunction((Double resolution) -> {
            return null;
        });
        assertTrue(feature.getStyle() == null);
        assertTrue(feature.getStyleFunction() instanceof GenericFunction);
    });
}
Also used : Style(ol.style.Style)

Aggregations

Style (ol.style.Style)6 Feature (ol.Feature)3 VectorLayerOptions (ol.layer.VectorLayerOptions)3 Collection (ol.Collection)2 Coordinate (ol.Coordinate)2 FeatureOptions (ol.FeatureOptions)2 Map (ol.Map)2 MapOptions (ol.MapOptions)2 View (ol.View)2 Rotate (ol.control.Rotate)2 ScaleLine (ol.control.ScaleLine)2 Point (ol.geom.Point)2 KeyboardPan (ol.interaction.KeyboardPan)2 KeyboardZoom (ol.interaction.KeyboardZoom)2 Base (ol.layer.Base)2 LayerOptions (ol.layer.LayerOptions)2 Tile (ol.layer.Tile)2 Osm (ol.source.Osm)2 Vector (ol.source.Vector)2 VectorOptions (ol.source.VectorOptions)2