List of usage examples for com.google.gwt.maps.client.overlay Polyline fromEncoded
public static Polyline fromEncoded(String color, int weight, double opacity, String encodedPoints, int zoomFactor, String encodedLevels, int numLevels)
From source file:com.google.gwt.maps.sample.hellomaps.client.OverlayDemo.java
License:Apache License
private void displayOverlay() { map.clearOverlays();/*from w ww . j a v a 2s . c o m*/ 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; } }