Example usage for com.google.gwt.maps.client.overlays Polyline newInstance

List of usage examples for com.google.gwt.maps.client.overlays Polyline newInstance

Introduction

In this page you can find the example usage for com.google.gwt.maps.client.overlays Polyline newInstance.

Prototype

public static final Polyline newInstance(PolylineOptions options) 

Source Link

Document

Create a polyline using the passed PolylineOptions, which specify both the path of the polyline and the stroke style to use when drawing the polyline.

Usage

From source file:com.google.gwt.maps.testing.client.maps.PolylineMapWidget.java

License:Apache License

/**
 * Add {@link Polyline} overlay to {@link MapWidget} with an {@link IconSequence}
 *///from  ww w.j a v a  2  s.  com
private void drawPolyline() {

    /*** (1) A nice simple line ***/
    LatLng[] a = new LatLng[12];
    a[0] = LatLng.newInstance(35.859300, -78.765407);
    a[1] = LatLng.newInstance(35.860622, -78.763282);
    a[2] = LatLng.newInstance(35.861074, -78.763862);
    a[3] = LatLng.newInstance(35.861770, -78.764055);
    a[4] = LatLng.newInstance(35.863752, -78.763647);
    a[5] = LatLng.newInstance(35.867561, -78.763518);
    a[6] = LatLng.newInstance(35.869091, -78.762445);
    a[7] = LatLng.newInstance(35.869195, -78.761823);
    a[8] = LatLng.newInstance(35.868239, -78.759162);
    a[9] = LatLng.newInstance(35.868256, -78.758519);
    a[10] = LatLng.newInstance(35.871369, -78.756759);
    a[11] = LatLng.newInstance(35.874168, -78.756781);
    JsArray<LatLng> simpleLatLngArr = ArrayHelper.toJsArray(a);

    // Draw various recurring symbols on the map
    // different colors and sizes/types shown
    final Symbol icon1 = Symbol.newInstance(SymbolPath.CIRCLE, 4d);
    icon1.setStrokeColor("blue");
    final Symbol icon2 = Symbol.newInstance(SymbolPath.FORWARD_CLOSED_ARROW, 5d);
    icon2.setStrokeColor("yellow");
    final Symbol icon3 = Symbol.newInstance(SymbolPath.FORWARD_OPEN_ARROW, 3d);
    icon3.setStrokeColor("orange");

    // start different sequences in different areas
    final IconSequence iconSeq1 = IconSequence.newInstance();
    iconSeq1.setIcon(icon1);
    iconSeq1.setOffset("10%");
    iconSeq1.setRepeat("22%");

    final IconSequence iconSeq2 = IconSequence.newInstance();
    iconSeq2.setIcon(icon2);
    iconSeq2.setOffset("50%");
    iconSeq2.setRepeat("7%");

    final IconSequence iconSeq3 = IconSequence.newInstance();
    iconSeq3.setIcon(icon3);
    iconSeq3.setOffset("70%");
    iconSeq3.setRepeat("5%");

    final JsArray<IconSequence> iconsArr = ArrayHelper
            .toJsArray(new IconSequence[] { iconSeq1, iconSeq2, iconSeq3 });

    PolylineOptions opts = PolylineOptions.newInstance();
    // opts.setMap(mapWidget); // you can attach it to the map here
    opts.setPath(simpleLatLngArr);
    opts.setStrokeColor("#0000FF");
    opts.setStrokeOpacity(1.0);
    opts.setStrokeWeight(2);
    opts.setIcons(iconsArr);

    Polyline polyLine = Polyline.newInstance(opts);
    polyLine.setMap(mapWidget); // or here, but this can also reassign it if you
                                // like
                                // this allows you to make polylines with no map, and then display them as
                                // needed

    /*** (2) Another simple line reusing some of the above ***/
    LatLng[] b = new LatLng[12];
    b[0] = LatLng.newInstance(35.864535, -78.761544);
    b[1] = LatLng.newInstance(35.864048, -78.761458);
    b[2] = LatLng.newInstance(35.863804, -78.762360);
    b[3] = LatLng.newInstance(35.862900, -78.762188);
    b[4] = LatLng.newInstance(35.861300, -78.762960);
    b[5] = LatLng.newInstance(35.860813, -78.763003);
    b[6] = LatLng.newInstance(35.860953, -78.761544);
    b[7] = LatLng.newInstance(35.859944, -78.759613);
    b[8] = LatLng.newInstance(35.860187, -78.758497);
    b[9] = LatLng.newInstance(35.860187, -78.756952);
    b[10] = LatLng.newInstance(35.861057, -78.755836);
    b[11] = LatLng.newInstance(35.861926, -78.756180);
    JsArray<LatLng> simpleLatLngArr2 = ArrayHelper.toJsArray(b);

    PolylineOptions opts3 = PolylineOptions.newInstance();
    opts3.setMap(mapWidget);
    opts3.setPath(simpleLatLngArr2);
    opts3.setStrokeColor("#00FF00");
    opts3.setStrokeOpacity(1.0);
    opts3.setStrokeWeight(2);

    @SuppressWarnings("unused")
    Polyline polyLine2 = Polyline.newInstance(opts3);

    /*** (2) A longer line ***/
    // NOTE: this is just an example - usually you would pull these values from
    // a database via RPC/XHR or from an XML file
    double[] lngPoints = new double[] { -78.759110, -78.758900, -78.758660, -78.758530, -78.758340, -78.758230,
            -78.758300, -78.758210, -78.758070, -78.757890, -78.757790, -78.757810, -78.757890, -78.757770,
            -78.757650, -78.757260, -78.757160, -78.757250, -78.757200, -78.757230, -78.757370, -78.757300,
            -78.756980, -78.756940, -78.756950, -78.757140, -78.757190, -78.757190, -78.757090, -78.756930,
            -78.756590, -78.756760, -78.755650, -78.754790, -78.754450, -78.754060, -78.753400, -78.752990,
            -78.752630, -78.752510, -78.752290, -78.751970, -78.751630, -78.750420, -78.750010, -78.749700,
            -78.749320, -78.749260, -78.749250, -78.749190, -78.748670, -78.748560, -78.748240, -78.747880,
            -78.747230, -78.747420, -78.747840, -78.748150, -78.748260, -78.748730, -78.749330, -78.749870,
            -78.750190, -78.750540, -78.750890, -78.751370, -78.751640, -78.751730, -78.751780, -78.751740,
            -78.751850, -78.752040, -78.752230, -78.752370, -78.752720, -78.752800, -78.752650, -78.752610,
            -78.752790, -78.752750, -78.752840, -78.752770, -78.752640, -78.752730, -78.752610, -78.752490,
            -78.751960, -78.751580, -78.751160, -78.750290, -78.749940, -78.749190, -78.748980, -78.748680,
            -78.748300, -78.747970, -78.747470, -78.747370, -78.747100, -78.746850, -78.746750, -78.746240,
            -78.745870, -78.745760, -78.745600, -78.745610, -78.745440, -78.745460, -78.745330, -78.745140,
            -78.744340, -78.744180, -78.744100, -78.744140, -78.744020, -78.743890, -78.743470, -78.743340,
            -78.743060, -78.742930, -78.742790, -78.742580, -78.742420, -78.742240, -78.741820, -78.741480,
            -78.740300, -78.739860, -78.739570, -78.739560, -78.739620, -78.739690, -78.740100, -78.740230,
            -78.740200, -78.740010, -78.740050, -78.740190, -78.740570, -78.740800, -78.741020, -78.741110,
            -78.741060, -78.741330, -78.742010, -78.742190, -78.742510, -78.743730, -78.744190, -78.744470,
            -78.744880, -78.745090, -78.745490, -78.746380, -78.746680, -78.746870, -78.747030, -78.747120,
            -78.747390, -78.747580, -78.748200, -78.748440, -78.748640, -78.749100, -78.749330 };
    double[] latPoints = new double[] { 35.871900, 35.871910, 35.871810, 35.871630, 35.871530, 35.871600,
            35.872110, 35.872290, 35.872390, 35.872370, 35.872250, 35.872100, 35.871970, 35.871790, 35.871710,
            35.871760, 35.871900, 35.872140, 35.872560, 35.872710, 35.872920, 35.873100, 35.873510, 35.873950,
            35.874080, 35.874130, 35.874290, 35.874480, 35.874640, 35.874700, 35.874650, 35.874170, 35.874120,
            35.873970, 35.873830, 35.873500, 35.872870, 35.872390, 35.871770, 35.871290, 35.870800, 35.870690,
            35.870630, 35.870860, 35.870810, 35.870680, 35.870260, 35.870050, 35.869390, 35.869110, 35.868340,
            35.867830, 35.867830, 35.867400, 35.867170, 35.866810, 35.864720, 35.863690, 35.863360, 35.862590,
            35.861920, 35.861850, 35.861710, 35.861460, 35.861280, 35.861250, 35.861100, 35.861090, 35.861130,
            35.861440, 35.861490, 35.861400, 35.861120, 35.860650, 35.860030, 35.859720, 35.859260, 35.858510,
            35.857480, 35.857070, 35.856950, 35.856640, 35.856430, 35.855980, 35.855830, 35.855700, 35.855430,
            35.855120, 35.854880, 35.854720, 35.854700, 35.854770, 35.854710, 35.854610, 35.854310, 35.854280,
            35.854040, 35.854020, 35.854150, 35.854000, 35.853760, 35.853450, 35.853360, 35.853540, 35.854090,
            35.854210, 35.854670, 35.855360, 35.855920, 35.856130, 35.856580, 35.856720, 35.856950, 35.857300,
            35.857440, 35.857450, 35.857250, 35.857140, 35.856360, 35.855770, 35.855450, 35.855220, 35.855190,
            35.855260, 35.855760, 35.856060, 35.856790, 35.857200, 35.857730, 35.858260, 35.858770, 35.858920,
            35.859350, 35.859740, 35.859940, 35.860300, 35.860980, 35.861050, 35.861090, 35.861200, 35.861370,
            35.861490, 35.862020, 35.862050, 35.862030, 35.862270, 35.862460, 35.863130, 35.863280, 35.863250,
            35.863080, 35.863040, 35.863140, 35.863120, 35.863060, 35.862900, 35.862270, 35.862180, 35.862020,
            35.862000, 35.861690, 35.861620, 35.861620, 35.861870, 35.861920 };

    // how you can make a bunch of LatLng objects
    ArrayList<LatLng> ptList = new ArrayList<LatLng>();
    int n = 0;
    for (double lng : lngPoints) {
        ptList.add(LatLng.newInstance(latPoints[n], lng));
        n++;
    }
    JsArray<LatLng> bigLatLngArr = ArrayHelper.toJsArray(ptList.toArray(new LatLng[] {})); // convert
                                                                                           // list->array->JsArray

    PolylineOptions opts2 = PolylineOptions.newInstance(); // you can reuse
                                                           // this, if your
                                                           // lines look the
                                                           // same
    opts2.setMap(mapWidget);
    opts2.setPath(bigLatLngArr);
    opts2.setStrokeColor("#FF0000");
    opts2.setStrokeOpacity(1.0);
    opts2.setStrokeWeight(2);

    Polyline bigPolyLine = Polyline.newInstance(opts2);
    mapWidget.setCenter(getPolyLineCenter(bigPolyLine));

}

From source file:com.jettmarks.routes.client.bean.Route.java

License:Apache License

/**
 * Takes several parameters from an EncodedTrack to create a Route:
 * <UL>//from ww w. ja v a2  s.  co m
 * <LI>Name
 * <LI>Distance
 * <LI>The encoded points that can generate a Polyline
 * </UL>
 * 
 * From the list above, this creates:
 * <UL>
 * <LI>polyline - in the default color & width
 * <LI>selectedPolyline - in the default selected color and width
 * <LI>the bounds of this route
 * <LI>highlightedPolyline - something to show up better on a mouse-over.
 * <UL>
 * 
 * @param encodedTrack
 */
public void setEncodedTrack(EncodedTrack encTrk) {
    this.encodedTrack = encTrk;
    this.name = encodedTrack.getRouteName();
    this.distance = encodedTrack.getDistance();
    setFacilityType(encodedTrack.getFacilityType());
    this.displayName = encodedTrack.getDisplayName();
    this.extSourceURL = encodedTrack.getSourceUrl();

    // int zoomFactor = 2;
    // int numLevels = 18;

    // polyline = Polyline.fromEncoded(
    // encodedTrack.getEncodedPoints(),
    // zoomFactor,
    // encodedTrack.getEncodedLevels(),
    // numLevels);

    polyline = Polyline.newInstance(unselectedStyleOptions);
    highlightedPolyline = Polyline.newInstance(highlightedStyleOptions);

    // polyline.setPath(EncodingUtils.decodePath(encodedTrack.getEncodedPoints()));
    @SuppressWarnings("unchecked")
    JsArray<LatLng> path = (JsArray<LatLng>) JsArray.createArray();
    double[] lats = encTrk.getLats();
    double[] lons = encTrk.getLons();
    for (int i = 0; i < lats.length; i++) {
        LatLng point = LatLng.newInstance(lats[i], lons[i]);
        path.set(i, point);
    }
    polyline.setPath(path);
    highlightedPolyline.setPath(path);

    // if (facilityType == FacilityType.SEGREGATED)
    // polyline.setStrokeStyle(segregatedStyleOptions);
    // else if (facilityType == FacilityType.BIKE_ROUTE)
    // polyline.setStrokeStyle(bikeLaneStyleOptions);
    // else if (facilityType == FacilityType.BIKE_LANE)
    // polyline.setStrokeStyle(bikeRouteStyleOptions);
    // else
    // polyline.setStrokeStyle(unselectedStyleOptions);
    //
    // selectedPolyline = Polyline.fromEncoded(
    // encodedTrack.getEncodedPoints(),
    // zoomFactor,
    // encodedTrack.getEncodedLevels(),
    // numLevels);
    // selectedPolyline.setStrokeStyle(selectedStyleOptions);
    //
    // highlightedPolyline = Polyline.fromEncoded(
    // encodedTrack.getEncodedPoints(),
    // zoomFactor,
    // encodedTrack.getEncodedLevels(),
    // numLevels);
    // highlightedPolyline.setStrokeStyle(highlightedStyleOptions);

    LatLng ne = LatLng.newInstance(encodedTrack.getMaxLat(), encodedTrack.getMaxLon());
    LatLng sw = LatLng.newInstance(encodedTrack.getMinLat(), encodedTrack.getMinLon());

    if (bounds == null) {
        bounds = LatLngBounds.newInstance(sw, ne);
    } else {
        bounds.extend(ne);
        bounds.extend(sw);
    }

}