Skip to content

Commit 566bdf1

Browse files
authored
Update Add Graphics Renderer sample to include ellipse shaped polygon (#672)
* update sample to include ellipse shaped polygon * address review comments
1 parent bd0d1c2 commit 566bdf1

File tree

4 files changed

+48
-1
lines changed

4 files changed

+48
-1
lines changed
-118 KB
Loading

display_information/add-graphics-with-renderer/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ Pan and zoom on the map to view graphics for points, lines, and polygons (includ
2424

2525
* CubicBezierSegment
2626
* EllipticArcSegment
27+
* GeodesicEllipseParameters
2728
* Geometry
29+
* GeometryEngine
2830
* Graphic
2931
* GraphicsOverlay
3032
* Part
@@ -41,4 +43,4 @@ To set unique symbols across a number of graphics (e.g. showing graphics of indi
4143

4244
## Tags
4345

44-
arc, bezier, curve, display, graphics, marker, overlay, renderer, segment, symbol, true curve
46+
arc, bezier, curve, display, ellipse, graphics, marker, overlay, renderer, segment, symbol, true curve

display_information/add-graphics-with-renderer/README.metadata.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"bezier",
1111
"curve",
1212
"display",
13+
"ellipse",
1314
"graphics",
1415
"marker",
1516
"overlay",
@@ -19,7 +20,9 @@
1920
"true curve",
2021
"CubicBezierSegment",
2122
"EllipticArcSegment",
23+
"GeodesicEllipseParameters",
2224
"Geometry",
25+
"GeometryEngine",
2326
"Graphic",
2427
"GraphicsOverlay",
2528
"Part",
@@ -36,7 +39,9 @@
3639
"relevant_apis": [
3740
"CubicBezierSegment",
3841
"EllipticArcSegment",
42+
"GeodesicEllipseParameters",
3943
"Geometry",
44+
"GeometryEngine",
4045
"Graphic",
4146
"GraphicsOverlay",
4247
"Part",

display_information/add-graphics-with-renderer/src/main/java/com/esri/samples/add_graphics_with_renderer/AddGraphicsWithRendererSample.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,19 @@
1717
package com.esri.samples.add_graphics_with_renderer;
1818

1919
import com.esri.arcgisruntime.ArcGISRuntimeEnvironment;
20+
import com.esri.arcgisruntime.geometry.AngularUnit;
21+
import com.esri.arcgisruntime.geometry.AngularUnitId;
2022
import com.esri.arcgisruntime.geometry.CubicBezierSegment;
2123
import com.esri.arcgisruntime.geometry.EllipticArcSegment;
24+
import com.esri.arcgisruntime.geometry.GeodesicEllipseParameters;
2225
import com.esri.arcgisruntime.geometry.Geometry;
26+
import com.esri.arcgisruntime.geometry.GeometryEngine;
27+
import com.esri.arcgisruntime.geometry.GeometryType;
28+
import com.esri.arcgisruntime.geometry.LinearUnit;
29+
import com.esri.arcgisruntime.geometry.LinearUnitId;
2330
import com.esri.arcgisruntime.geometry.Part;
2431
import com.esri.arcgisruntime.geometry.Point;
32+
import com.esri.arcgisruntime.geometry.Polygon;
2533
import com.esri.arcgisruntime.geometry.PolygonBuilder;
2634
import com.esri.arcgisruntime.geometry.PolylineBuilder;
2735
import com.esri.arcgisruntime.geometry.SpatialReference;
@@ -136,6 +144,15 @@ public void start(Stage stage) {
136144
curvedGraphicOverlay.getGraphics().add(heartGraphic);
137145
mapView.getGraphicsOverlays().add(curvedGraphicOverlay);
138146

147+
// purple ellipse polygon graphic
148+
GraphicsOverlay ellipseGraphicOverlay = new GraphicsOverlay();
149+
SimpleFillSymbol ellipseSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID, ColorUtil.colorToArgb(Color.PURPLE), null);
150+
SimpleRenderer ellipseRenderer = new SimpleRenderer(ellipseSymbol);
151+
ellipseGraphicOverlay.setRenderer(ellipseRenderer);
152+
Graphic ellipseGraphic = new Graphic(makeEllipse());
153+
ellipseGraphicOverlay.getGraphics().add(ellipseGraphic);
154+
mapView.getGraphicsOverlays().add(ellipseGraphicOverlay);
155+
139156
// add the map view to stack pane
140157
stackPane.getChildren().add(mapView);
141158

@@ -194,6 +211,29 @@ private Geometry makeHeartGeometry(Point centerOfHeart) {
194211
return heartShape.toGeometry();
195212
}
196213

214+
/**
215+
* Create an ellipse shaped polygon.
216+
*
217+
* @return ellipse shaped polygon
218+
*/
219+
private Polygon makeEllipse() {
220+
// create and set all the parameters so that the ellipse has a major axis of 400 kilometres,
221+
// a minor axis of 200 kilometres and is rotated at an angle of -45 degrees.
222+
GeodesicEllipseParameters parameters = new GeodesicEllipseParameters();
223+
224+
parameters.setCenter(new Point(40e5,25e5, SpatialReferences.getWebMercator()));
225+
parameters.setGeometryType(GeometryType.POLYGON);
226+
parameters.setSemiAxis1Length(200);
227+
parameters.setSemiAxis2Length(400);
228+
parameters.setAxisDirection(-45);
229+
parameters.setMaxPointCount(100);
230+
parameters.setAngularUnit(new AngularUnit(AngularUnitId.DEGREES));
231+
parameters.setLinearUnit(new LinearUnit(LinearUnitId.KILOMETERS));
232+
parameters.setMaxSegmentLength(20);
233+
234+
return (Polygon) GeometryEngine.ellipseGeodesic(parameters);
235+
}
236+
197237
/**
198238
* Stops and releases all resources used in application.
199239
*/

0 commit comments

Comments
 (0)