Example usage for com.google.gwt.maps.client.overlays SymbolPath FORWARD_OPEN_ARROW

List of usage examples for com.google.gwt.maps.client.overlays SymbolPath FORWARD_OPEN_ARROW

Introduction

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

Prototype

SymbolPath FORWARD_OPEN_ARROW

To view the source code for com.google.gwt.maps.client.overlays SymbolPath FORWARD_OPEN_ARROW.

Click Source Link

Document

A forward-pointing open arrow.

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 w  ww  .j a  v a2s  .c  o  m*/
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));

}