arcgis runtime 100 Create geometries

1 /* Copyright 2016 EsriEsri 
2  * 
3  * Licensed under the Apache License, Version 2.0 (the "License"); 
4  * you may not use this file except in compliance with the License. 
5  * You may obtain a copy of the License at 
6  * 
7  *    http://www.apache.org/licenses/LICENSE-2.0 
8  * 
9  * Unless required by applicable law or agreed to in writing, software 
10  * distributed under the License is distributed on an "AS IS" BASIS, 
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
12  * See the License for the specific language governing permissions and 
13  * limitations under the License. 
14  * 
15  */ 
16 
 
17 package com.esri.arcgisruntime.sample.creategeometries; 
18 
 
19 import android.graphics.Color; 
20 import android.os.Bundle; 
21 import android.support.v7.app.AppCompatActivity; 
22 
 
23 import com.esri.arcgisruntime.geometry.Envelope; 
24 import com.esri.arcgisruntime.geometry.Multipoint; 
25 import com.esri.arcgisruntime.geometry.Point; 
26 import com.esri.arcgisruntime.geometry.PointCollection; 
27 import com.esri.arcgisruntime.geometry.Polygon; 
28 import com.esri.arcgisruntime.geometry.Polyline; 
29 import com.esri.arcgisruntime.geometry.SpatialReferences; 
30 import com.esri.arcgisruntime.mapping.ArcGISMap; 
31 import com.esri.arcgisruntime.mapping.Basemap; 
32 import com.esri.arcgisruntime.mapping.view.Graphic; 
33 import com.esri.arcgisruntime.mapping.view.GraphicsOverlay; 
34 import com.esri.arcgisruntime.mapping.view.MapView; 
35 import com.esri.arcgisruntime.symbology.SimpleFillSymbol; 
36 import com.esri.arcgisruntime.symbology.SimpleLineSymbol; 
37 import com.esri.arcgisruntime.symbology.SimpleMarkerSymbol; 
38 
 
39 /** 
40  * Shows straightforward ways to create Point, Envelope, Multipoint, Polyline, and Polygon geometries. Shows a MapView 
41  * with a GraphicsOverlay containing Graphics created from the Point, Multipoint, Polyline, and Polygon geometries, and 
42  * sets the Viewpoint of the Map from the Envelope geometry. 
43  */ 
44 public class MainActivity extends AppCompatActivity { 
45 
 
46   private Envelope createEnvelope() { 
47 
 
48     //[DocRef: Name=Create Envelope, Category=Fundamentals, Topic=Geometries] 
49     // create an Envelope using minimum and maximum x,y coordinates and a SpatialReference 
50     Envelope envelope = new Envelope(-123.0, 33.5, -101.0, 48.0, SpatialReferences.getWgs84()); 
51     //[DocRef: END] 
52 
 
53     return envelope; 
54   } 
55 
 
56   private Point createPoint() { 
57     //[DocRef: Name=Create Point, Category=Fundamentals, Topic=Geometries] 
58     // create a Point using x,y coordinates and a SpatialReference 
59     Point pt = new Point(34.056295, -117.195800, SpatialReferences.getWgs84()); 
60     //[DocRef: END] 
61 
 
62     return pt; 
63   } 
64 
 
65   private Multipoint createMultipoint() { 
66     //[DocRef: Name=Create Multipoint, Category=Fundamentals, Topic=Geometries] 
67     // create a Multipoint from a PointCollection 
68     PointCollection stateCapitalsPST = new PointCollection(SpatialReferences.getWgs84()); 
69     stateCapitalsPST.add(-121.491014, 38.579065); // Sacramento, CA 
70     stateCapitalsPST.add(-122.891366, 47.039231); // Olympia, WA 
71     stateCapitalsPST.add(-123.043814, 44.93326); // Salem, OR 
72     stateCapitalsPST.add(-119.766999, 39.164885); // Carson City, NV 
73     Multipoint multipoint = new Multipoint(stateCapitalsPST); 
74     //[DocRef: END] 
75 
 
76     return multipoint; 
77   } 
78 
 
79   private Polyline createPolyline() { 
80     //[DocRef: Name=Create Polyline, Category=Fundamentals, Topic=Geometries] 
81     // create a Polyline from a PointCollection 
82     PointCollection borderCAtoNV = new PointCollection(SpatialReferences.getWgs84()); 
83     borderCAtoNV.add(-119.992, 41.989); 
84     borderCAtoNV.add(-119.994, 38.994); 
85     borderCAtoNV.add(-114.620, 35.0); 
86     Polyline polyline = new Polyline(borderCAtoNV); 
87     //[DocRef: END] 
88 
 
89     return polyline; 
90   } 
91 
 
92   private Polygon createPolygon() { 
93     //[DocRef: Name=Create Polygon, Category=Fundamentals, Topic=Geometries] 
94     // create a Polygon from a PointCollection 
95     PointCollection coloradoCorners = new PointCollection(SpatialReferences.getWgs84()); 
96     coloradoCorners.add(-109.048, 40.998); 
97     coloradoCorners.add(-102.047, 40.998); 
98     coloradoCorners.add(-102.037, 36.989); 
99     coloradoCorners.add(-109.048, 36.998); 
100     Polygon polygon = new Polygon(coloradoCorners); 
101     //[DocRef: END] 
102 
 
103     return polygon; 
104   } 
105 
 
106 
 
107   @Override 
108   protected void onCreate(Bundle savedInstanceState) { 
109     super.onCreate(savedInstanceState); 
110     setContentView(R.layout.activity_main); 
111 
 
112     // get MapView from layout 
113     MapView mMapView = (MapView) findViewById(R.id.mapView); 
114 
 
115     // create a map with the BasemapType topographic 
116     final ArcGISMap mMap = new ArcGISMap(Basemap.createTopographic()); 
117 
 
118     // set the map to be displayed in this view 
119     mMapView.setMap(mMap); 
120 
 
121     // create color and symbols for drawing graphics 
122     SimpleMarkerSymbol markerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.TRIANGLE, Color.BLUE, 14); 
123     SimpleFillSymbol fillSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.CROSS, Color.BLUE, null); 
124     SimpleLineSymbol lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.BLUE, 3); 
125 
 
126     // add a graphic of point, multipoint, polyline and polygon. 
127     GraphicsOverlay overlay = new GraphicsOverlay(); 
128     mMapView.getGraphicsOverlays().add(overlay); 
129     overlay.getGraphics().add(new Graphic(createPolygon(), fillSymbol)); 
130     overlay.getGraphics().add(new Graphic(createPolyline(), lineSymbol)); 
131     overlay.getGraphics().add(new Graphic(createMultipoint(), markerSymbol)); 
132     overlay.getGraphics().add(new Graphic(createPoint(), markerSymbol)); 
133 
 
134     // use the envelope to set the map viewpoint 
135     mMapView.setViewpointGeometryAsync(createEnvelope(), getResources().getDimension(R.dimen.viewpoint_padding)); 
136 
 
137   } 
138 
 
139 } 
原文地址:https://www.cnblogs.com/gisoracle/p/7420384.html