Example usage for com.google.gwt.maps.client.overlay Polygon fromEncoded

List of usage examples for com.google.gwt.maps.client.overlay Polygon fromEncoded

Introduction

In this page you can find the example usage for com.google.gwt.maps.client.overlay Polygon fromEncoded.

Prototype

public static Polygon fromEncoded(EncodedPolyline[] polylines, boolean fill, String color, double opacity,
        boolean outline) 

Source Link

Document

Create a polygon from an array of polylines.

Usage

From source file:com.google.gwt.maps.sample.hellomaps.client.OverlayDemo.java

License:Apache License

private void displayOverlay() {

    map.clearOverlays();//from w w  w  .j a va2  s . com

    LatLngBounds bounds = map.getBounds();
    LatLng southWest = bounds.getSouthWest();
    LatLng northEast = bounds.getNorthEast();
    double lngSpan = northEast.getLongitude() - southWest.getLongitude();
    double latSpan = northEast.getLatitude() - southWest.getLatitude();

    LatLng[] points = new LatLng[NUM_POINTS];

    for (int i = 0; i < NUM_POINTS; i++) {
        points[i] = LatLng.newInstance(southWest.getLatitude() + latSpan * Math.random(),
                southWest.getLongitude() + lngSpan * Math.random());
        GWT.log("points[" + i + "] = " + points[i] + " z-index = " + Marker.getZIndex(points[i].getLatitude()),
                null);
    }

    OverlayDemos selected = OverlayDemos.values()[actionListBox.getSelectedIndex()];

    switch (selected) {
    case TEST_TEN_MARKERS: {
        // Add markers in random locations on the map
        for (int i = 0; i < NUM_POINTS; i++) {
            map.addOverlay(new Marker(points[i]));
        }
    }
        break;

    case TEST_POLYLINE_ONE: {
        // Add a polyline with NUM_POINTS random points. Sort the points by
        // longitude so that the line does not intersect itself.
        Arrays.sort(points, new Comparator<LatLng>() {
            public int compare(LatLng p1, LatLng p2) {
                return new Double(p1.getLongitude()).compareTo(new Double(p2.getLongitude()));
            }
        });
        Polyline pline = new Polyline(points);
        map.addOverlay(pline);
        if (pline.getVertexCount() != NUM_POINTS) {
            Window.alert("Created polyline with " + NUM_POINTS + " vertices, but now it has "
                    + pline.getVertexCount());
        }
    }
        break;

    case TEST_POLYLINE_ENCODED: {
        // Add a polyline encoded in a string
        map.setCenter(LatLng.newInstance(40.71213418976525, -73.96785736083984), 15);
        Polyline pline = Polyline.fromEncoded("#3333cc", 10, 1.0, ENCODED_POINTS, 32, ENCODED_LEVELS, 4);
        map.addOverlay(pline);
    }
        break;
    case TEST_POLYLINE_GEODESIC: {
        LatLng nycToZurich[] = { LatLng.newInstance(40.75, -73.90), // New York
                LatLng.newInstance(47.3, 8.5) // Zurich
        };
        map.setCenter(LatLng.newInstance(40, -25), 2);
        Polyline pline = new Polyline(nycToZurich, "#FF0000", 1, .75, PolylineOptions.newInstance(false, true));
        map.addOverlay(pline);
    }
        break;
    case TEST_POLYLINE_ENCODED_TRANSPARENT: {
        // Add a polyline with transparency
        map.setCenter(LatLng.newInstance(40.71213418976525, -73.96785736083984), 15);
        Polyline pline = Polyline.fromEncoded(ENCODED_POINTS, 32, ENCODED_LEVELS, 4);
        map.addOverlay(pline);
    }
        break;

    case TEST_POLYGON_ENCODED: {
        // Add a polygon encoded as a series of polylines.
        map.setCenter(LatLng.newInstance(33.75951619957536, -84.39289301633835), 20);
        EncodedPolyline[] polylines = new EncodedPolyline[2];
        polylines[0] = EncodedPolyline.newInstance("au`mEz_bbO?sAbA@?pAcA?", 2, "BBBBB", 1, "#ff0000", 2, 0.9);

        polylines[1] = EncodedPolyline.newInstance("{t`mEt_bbO?eAx@??dAy@?", 2, "BBBBB", 1);
        polylines[1].setColor("#ff0000");
        polylines[1].setWeight(2);
        polylines[1].setOpacity(0.7);

        Polygon theFountain = Polygon.fromEncoded(polylines, true, "#ff0000", 0.2, true);
        map.addOverlay(theFountain);
        map.setCurrentMapType(MapType.getHybridMap());
    }
        break;

    default:
        Window.alert("Cannot handle selection: " + selected.valueOf());
        break;
    }
}

From source file:org.onebusaway.webapp.gwt.oba_library.model.TimedPolygonModel.java

License:Apache License

public void setData(List<EncodedPolygonBean> polygons, List<Integer> times, boolean complete) {

    _polygons.clear();/*  w w  w  .j av a 2s . c om*/
    _minTime = Integer.MAX_VALUE;
    _maxTime = 0;
    _complete = complete;

    for (int i = 0; i < polygons.size(); i++) {

        EncodedPolygonBean bean = polygons.get(i);
        List<EncodedPolylineBean> inner = bean.getInnerRings();

        EncodedPolyline[] lines = new EncodedPolyline[1 + inner.size()];

        lines[0] = createPolyline(bean.getOuterRing());

        for (int x = 0; x < inner.size(); x++)
            lines[1 + x] = createPolyline(inner.get(x));

        int time = times.get(i);
        _minTime = Math.min(time, _minTime);
        _maxTime = Math.max(time, _maxTime);

        Polygon poly = Polygon.fromEncoded(lines, true, "#0000FF", 0.1, true);
        TimedPolygon tp = new TimedPolygon(poly, time);
        _polygons.add(tp);

    }

    refresh();
}