<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic I didn't find a way to move elements in the API, so I made one in ArcGIS Runtime SDK for Android Questions</title>
    <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/i-didn-t-find-a-way-to-move-elements-in-the-api-so/m-p/1478962#M6213</link>
    <description>&lt;PRE&gt;&lt;SPAN&gt;package &lt;/SPAN&gt;com.maptool.map&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.util.Log&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.AngularUnit&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.AngularUnitId&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.AreaUnit&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.AreaUnitId&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.GeodeticCurveType&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.Geometry&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.GeometryEngine&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.GeometryType&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.ImmutablePartCollection&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.LinearUnit&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.LinearUnitId&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.Point&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.PointCollection&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.Polygon&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.Polyline&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.GraphicsOverlay&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.MapView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchCreationMode&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchEditor&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchGeometryChangedEvent&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchGeometryChangedListener&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchStyle&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.maptool.config.MapConfig&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.ArrayList&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Collections&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.List&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * &lt;/SPAN&gt;&lt;SPAN&gt;图斑平移&lt;BR /&gt;&lt;/SPAN&gt; &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;public class &lt;/SPAN&gt;GeometryMove {&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private static &lt;/SPAN&gt;SketchEditor &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static &lt;/SPAN&gt;SketchStyle &lt;SPAN&gt;sketchStyle&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;以前的样式&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static &lt;/SPAN&gt;Geometry &lt;SPAN&gt;optNewGeomety&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;记录移动的地块&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static &lt;/SPAN&gt;Geometry &lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;记录移动的老地块&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static &lt;/SPAN&gt;GraphicsOverlay &lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static &lt;/SPAN&gt;MapView &lt;SPAN&gt;mapView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static &lt;/SPAN&gt;GeometryChangedListene &lt;SPAN&gt;geometryChangedListene&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * &lt;/SPAN&gt;&lt;SPAN&gt;平移地块&lt;BR /&gt;&lt;/SPAN&gt;     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public static void &lt;/SPAN&gt;&lt;SPAN&gt;moveGeometry&lt;/SPAN&gt;(MapView mMapView&lt;SPAN&gt;, &lt;/SPAN&gt;Geometry moveGeometry) &lt;SPAN&gt;throws &lt;/SPAN&gt;Exception {&lt;BR /&gt;        &lt;SPAN&gt;tranGeometry &lt;/SPAN&gt;= moveGeometry&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mapView &lt;/SPAN&gt;= mMapView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mainSketchEditor &lt;/SPAN&gt;= mMapView.getSketchEditor()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(&lt;SPAN&gt;mainSketchEditor &lt;/SPAN&gt;== &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;mainSketchEditor &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;SketchEditor()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;sketchStyle &lt;/SPAN&gt;= mMapView.getSketchEditor().getSketchStyle()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.setSketchStyle(MapConfig.&lt;SPAN&gt;getTtansparentSketchStyle&lt;/SPAN&gt;())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        mMapView.setSketchEditor(&lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.start(SketchCreationMode.&lt;SPAN&gt;FREEHAND_LINE&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;加载单个图斑高亮显示图层&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mHighlightGraphicsOverlay &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;GraphicsOverlay()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mapView&lt;/SPAN&gt;.getGraphicsOverlays().add(&lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;geometryChangedListene &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;GeometryChangedListene()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.addGeometryChangedListener(&lt;SPAN&gt;geometryChangedListene&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * &lt;/SPAN&gt;&lt;SPAN&gt;获取移动后的图斑&lt;BR /&gt;&lt;/SPAN&gt;     &lt;SPAN&gt;*&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * &lt;/SPAN&gt;&lt;SPAN&gt;@return&lt;BR /&gt;&lt;/SPAN&gt;     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public static &lt;/SPAN&gt;Geometry &lt;SPAN&gt;getMoveGeometry&lt;/SPAN&gt;() &lt;SPAN&gt;throws &lt;/SPAN&gt;Exception {&lt;BR /&gt;        &lt;SPAN&gt;closeMoveGeometry&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(&lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;!= &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;optNewGeomety&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;return null;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * &lt;/SPAN&gt;&lt;SPAN&gt;移动图斑关闭&lt;BR /&gt;&lt;/SPAN&gt;     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public static void &lt;/SPAN&gt;&lt;SPAN&gt;closeMoveGeometry&lt;/SPAN&gt;() &lt;SPAN&gt;throws &lt;/SPAN&gt;Exception {&lt;BR /&gt;        &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.stop()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;.getGraphics().clear()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(&lt;SPAN&gt;sketchStyle &lt;/SPAN&gt;!= &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.setSketchStyle(&lt;SPAN&gt;sketchStyle&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;geometryChangedListene &lt;/SPAN&gt;!= &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.removeGeometryChangedListener(&lt;SPAN&gt;geometryChangedListene&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;public static class &lt;/SPAN&gt;GeometryChangedListene &lt;SPAN&gt;implements &lt;/SPAN&gt;SketchGeometryChangedListener {&lt;BR /&gt;        &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;geometryChanged&lt;/SPAN&gt;(SketchGeometryChangedEvent sketchGeometryChangedEvent) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.getSketchCreationMode() == SketchCreationMode.&lt;SPAN&gt;FREEHAND_LINE&lt;/SPAN&gt;) {&lt;BR /&gt;&lt;BR /&gt;                Polyline polyline = (Polyline) &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.getGeometry()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                Iterable&amp;lt;Point&amp;gt; partsAsPoints = polyline.getParts().getPartsAsPoints()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                List&amp;lt;Point&amp;gt; listPoint = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                for &lt;/SPAN&gt;(Point point : partsAsPoints) {&lt;BR /&gt;                    listPoint.add(point)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;                &lt;SPAN&gt;if &lt;/SPAN&gt;(listPoint.size() &amp;gt; &lt;SPAN&gt;0&lt;/SPAN&gt;) {&lt;BR /&gt;                    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                     * 1&lt;/SPAN&gt;&lt;SPAN&gt;、拿出画的流状线的最后一个点坐标&lt;BR /&gt;&lt;/SPAN&gt;                     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;                    Point clickPoint = listPoint.get(listPoint.size() - &lt;SPAN&gt;1&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                     * &lt;/SPAN&gt;&lt;SPAN&gt;计算需要移动图形的中心点坐标与流状线最后一个坐标的方位角&lt;BR /&gt;&lt;/SPAN&gt;                     &lt;SPAN&gt;* */&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;double &lt;/SPAN&gt;azimuth1 = GeometryEngine.&lt;SPAN&gt;distanceGeodetic&lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getExtent().getCenter()&lt;SPAN&gt;, &lt;/SPAN&gt;clickPoint&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            new &lt;/SPAN&gt;LinearUnit(LinearUnitId.&lt;SPAN&gt;METERS&lt;/SPAN&gt;)&lt;SPAN&gt;, new &lt;/SPAN&gt;AngularUnit(AngularUnitId.&lt;SPAN&gt;DEGREES&lt;/SPAN&gt;)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;                            GeodeticCurveType.&lt;SPAN&gt;GREAT_ELLIPTIC&lt;/SPAN&gt;).getAzimuth1()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    PointCollection points = &lt;SPAN&gt;new &lt;/SPAN&gt;PointCollection(&lt;SPAN&gt;mapView&lt;/SPAN&gt;.getSpatialReference())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    points.add(clickPoint)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    points.add(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getExtent().getCenter())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    Polyline polylineLength = &lt;SPAN&gt;new &lt;/SPAN&gt;Polyline(points)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                     * &lt;/SPAN&gt;&lt;SPAN&gt;计算需要移动图形的中心点坐标与流状线最后一个坐标的距离&lt;BR /&gt;&lt;/SPAN&gt;                     &lt;SPAN&gt;* */&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;double &lt;/SPAN&gt;length = GeometryEngine.&lt;SPAN&gt;lengthGeodetic&lt;/SPAN&gt;(polylineLength&lt;SPAN&gt;, new &lt;/SPAN&gt;LinearUnit(LinearUnitId.&lt;SPAN&gt;METERS&lt;/SPAN&gt;)&lt;SPAN&gt;, &lt;/SPAN&gt;GeodeticCurveType.&lt;SPAN&gt;GREAT_ELLIPTIC&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;输出滑动距离和方位角&lt;BR /&gt;&lt;/SPAN&gt;                    Log.&lt;SPAN&gt;e&lt;/SPAN&gt;(&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;滑动距离&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;length + &lt;SPAN&gt;""&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                     * &lt;/SPAN&gt;&lt;SPAN&gt;获取需要移动的面要素的所有点&lt;BR /&gt;&lt;/SPAN&gt;                     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;                    ImmutablePartCollection parts = &lt;SPAN&gt;null;&lt;BR /&gt;&lt;/SPAN&gt;                    List&amp;lt;Point&amp;gt; listPolygon = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                    boolean &lt;/SPAN&gt;polygonTaget = &lt;SPAN&gt;false;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                    if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POLYGON&lt;/SPAN&gt;) {&lt;BR /&gt;                        Polygon polygon = (Polygon) &lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        parts = polygon.getParts()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        polygonTaget = &lt;SPAN&gt;true;&lt;BR /&gt;&lt;/SPAN&gt;                    } &lt;SPAN&gt;else if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POLYLINE&lt;/SPAN&gt;) {&lt;BR /&gt;                        Polyline polygon = (Polyline) &lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        parts = polygon.getParts()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        polygonTaget = &lt;SPAN&gt;false;&lt;BR /&gt;&lt;/SPAN&gt;                    } &lt;SPAN&gt;else if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POINT&lt;/SPAN&gt;) {&lt;BR /&gt;                        Point point = (Point) &lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        listPolygon.add(point)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        polygonTaget = &lt;SPAN&gt;false;&lt;BR /&gt;&lt;/SPAN&gt;                    }&lt;BR /&gt;                    &lt;SPAN&gt;if &lt;/SPAN&gt;(parts != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                        &lt;SPAN&gt;if &lt;/SPAN&gt;(parts.size() &amp;gt; &lt;SPAN&gt;1 &lt;/SPAN&gt;&amp;amp;&amp;amp; polygonTaget) {&lt;BR /&gt;                            List&amp;lt;List&amp;lt;Point&amp;gt;&amp;gt; AllListPolygon = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            for &lt;/SPAN&gt;(&lt;SPAN&gt;int &lt;/SPAN&gt;i = &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;i &amp;lt; parts.size()&lt;SPAN&gt;; &lt;/SPAN&gt;i++) {&lt;BR /&gt;                                Iterable&amp;lt;Point&amp;gt; points1 = parts.get(i).getPoints()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                for &lt;/SPAN&gt;(Point point : points1) {&lt;BR /&gt;                                    listPolygon.add(GeometryEngine.&lt;SPAN&gt;moveGeodetic&lt;/SPAN&gt;(point&lt;SPAN&gt;, &lt;/SPAN&gt;length&lt;SPAN&gt;, new &lt;/SPAN&gt;LinearUnit(LinearUnitId.&lt;SPAN&gt;METERS&lt;/SPAN&gt;)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;                                            azimuth1&lt;SPAN&gt;, new &lt;/SPAN&gt;AngularUnit(AngularUnitId.&lt;SPAN&gt;DEGREES&lt;/SPAN&gt;)&lt;SPAN&gt;, &lt;/SPAN&gt;GeodeticCurveType.&lt;SPAN&gt;GEODESIC&lt;/SPAN&gt;))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                }&lt;BR /&gt;                                AllListPolygon.add(listPolygon)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                            List&amp;lt;Geometry&amp;gt; listGeometry = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            List&amp;lt;Double&amp;gt; doubles = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            for &lt;/SPAN&gt;(List&amp;lt;Point&amp;gt; list : AllListPolygon) {&lt;BR /&gt;                                PointCollection polygonList = &lt;SPAN&gt;new &lt;/SPAN&gt;PointCollection(&lt;SPAN&gt;mapView&lt;/SPAN&gt;.getSpatialReference())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                polygonList.addAll(list)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                Polygon polygon1 = &lt;SPAN&gt;new &lt;/SPAN&gt;Polygon(polygonList)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                double &lt;/SPAN&gt;geodetic = GeometryEngine.&lt;SPAN&gt;areaGeodetic&lt;/SPAN&gt;(polygon1&lt;SPAN&gt;, new &lt;/SPAN&gt;AreaUnit(AreaUnitId.&lt;SPAN&gt;SQUARE_METERS&lt;/SPAN&gt;)&lt;SPAN&gt;, &lt;/SPAN&gt;GeodeticCurveType.&lt;SPAN&gt;SHAPE_PRESERVING&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                listGeometry.add(polygon1)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                doubles.add(geodetic)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                            &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= GeometryEngine.&lt;SPAN&gt;union&lt;/SPAN&gt;(listGeometry)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            Double max = Collections.&lt;SPAN&gt;max&lt;/SPAN&gt;(doubles)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            int &lt;/SPAN&gt;i = doubles.indexOf(max)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            for &lt;/SPAN&gt;(&lt;SPAN&gt;int &lt;/SPAN&gt;j = &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;j &amp;lt; listPolygon.size()&lt;SPAN&gt;; &lt;/SPAN&gt;j++) {&lt;BR /&gt;                                &lt;SPAN&gt;if &lt;/SPAN&gt;(i != j) {&lt;BR /&gt;                                    &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= GeometryEngine.&lt;SPAN&gt;difference&lt;/SPAN&gt;(&lt;SPAN&gt;optNewGeomety&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;listPolygon.get(j))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                }&lt;BR /&gt;                            }&lt;BR /&gt;                        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                            Iterable&amp;lt;Point&amp;gt; partsAsPointsPolygon = parts.getPartsAsPoints()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            for &lt;/SPAN&gt;(Point point : partsAsPointsPolygon) {&lt;BR /&gt;                                listPolygon.add(point)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                        }&lt;BR /&gt;                        &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                         * &lt;/SPAN&gt;&lt;SPAN&gt;需要移动的面要素的所有点向上面计算的方位角，距离整体移动&lt;BR /&gt;&lt;/SPAN&gt;                         &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;                        List&amp;lt;Point&amp;gt; list = GeometryEngine.&lt;SPAN&gt;moveGeodetic&lt;/SPAN&gt;(listPolygon&lt;SPAN&gt;, &lt;/SPAN&gt;length&lt;SPAN&gt;, new &lt;/SPAN&gt;LinearUnit(LinearUnitId.&lt;SPAN&gt;METERS&lt;/SPAN&gt;)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;                                azimuth1&lt;SPAN&gt;, new &lt;/SPAN&gt;AngularUnit(AngularUnitId.&lt;SPAN&gt;DEGREES&lt;/SPAN&gt;)&lt;SPAN&gt;, &lt;/SPAN&gt;GeodeticCurveType.&lt;SPAN&gt;GEODESIC&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        PointCollection polygonList = &lt;SPAN&gt;new &lt;/SPAN&gt;PointCollection(&lt;SPAN&gt;mapView&lt;/SPAN&gt;.getSpatialReference())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        polygonList.addAll(list)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                        if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POLYGON&lt;/SPAN&gt;) {&lt;BR /&gt;                            &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;Polygon(polygonList)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        } &lt;SPAN&gt;else if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POLYLINE&lt;/SPAN&gt;) {&lt;BR /&gt;                            &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;Polyline(polygonList)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        } &lt;SPAN&gt;else if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POINT&lt;/SPAN&gt;) {&lt;BR /&gt;                            &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= list.get(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        }&lt;BR /&gt;                    }&lt;BR /&gt;                    &lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;.getGraphics().clear()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    MapConfig.&lt;SPAN&gt;highlightGeometry&lt;/SPAN&gt;(&lt;SPAN&gt;optNewGeomety&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;}&lt;/PRE&gt;</description>
    <pubDate>Mon, 27 May 2024 02:30:55 GMT</pubDate>
    <dc:creator>pengpengdeng</dc:creator>
    <dc:date>2024-05-27T02:30:55Z</dc:date>
    <item>
      <title>I didn't find a way to move elements in the API, so I made one</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/i-didn-t-find-a-way-to-move-elements-in-the-api-so/m-p/1478962#M6213</link>
      <description>&lt;PRE&gt;&lt;SPAN&gt;package &lt;/SPAN&gt;com.maptool.map&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.util.Log&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.AngularUnit&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.AngularUnitId&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.AreaUnit&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.AreaUnitId&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.GeodeticCurveType&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.Geometry&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.GeometryEngine&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.GeometryType&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.ImmutablePartCollection&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.LinearUnit&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.LinearUnitId&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.Point&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.PointCollection&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.Polygon&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.geometry.Polyline&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.GraphicsOverlay&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.MapView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchCreationMode&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchEditor&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchGeometryChangedEvent&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchGeometryChangedListener&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgisruntime.mapping.view.SketchStyle&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.maptool.config.MapConfig&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.ArrayList&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.Collections&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;java.util.List&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * &lt;/SPAN&gt;&lt;SPAN&gt;图斑平移&lt;BR /&gt;&lt;/SPAN&gt; &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;public class &lt;/SPAN&gt;GeometryMove {&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private static &lt;/SPAN&gt;SketchEditor &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static &lt;/SPAN&gt;SketchStyle &lt;SPAN&gt;sketchStyle&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;以前的样式&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static &lt;/SPAN&gt;Geometry &lt;SPAN&gt;optNewGeomety&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;记录移动的地块&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static &lt;/SPAN&gt;Geometry &lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;记录移动的老地块&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private static &lt;/SPAN&gt;GraphicsOverlay &lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static &lt;/SPAN&gt;MapView &lt;SPAN&gt;mapView&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private static &lt;/SPAN&gt;GeometryChangedListene &lt;SPAN&gt;geometryChangedListene&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * &lt;/SPAN&gt;&lt;SPAN&gt;平移地块&lt;BR /&gt;&lt;/SPAN&gt;     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public static void &lt;/SPAN&gt;&lt;SPAN&gt;moveGeometry&lt;/SPAN&gt;(MapView mMapView&lt;SPAN&gt;, &lt;/SPAN&gt;Geometry moveGeometry) &lt;SPAN&gt;throws &lt;/SPAN&gt;Exception {&lt;BR /&gt;        &lt;SPAN&gt;tranGeometry &lt;/SPAN&gt;= moveGeometry&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mapView &lt;/SPAN&gt;= mMapView&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mainSketchEditor &lt;/SPAN&gt;= mMapView.getSketchEditor()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(&lt;SPAN&gt;mainSketchEditor &lt;/SPAN&gt;== &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;mainSketchEditor &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;SketchEditor()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;sketchStyle &lt;/SPAN&gt;= mMapView.getSketchEditor().getSketchStyle()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.setSketchStyle(MapConfig.&lt;SPAN&gt;getTtansparentSketchStyle&lt;/SPAN&gt;())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        mMapView.setSketchEditor(&lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.start(SketchCreationMode.&lt;SPAN&gt;FREEHAND_LINE&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;//&lt;/SPAN&gt;&lt;SPAN&gt;加载单个图斑高亮显示图层&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mHighlightGraphicsOverlay &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;GraphicsOverlay()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mapView&lt;/SPAN&gt;.getGraphicsOverlays().add(&lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;geometryChangedListene &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;GeometryChangedListene()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.addGeometryChangedListener(&lt;SPAN&gt;geometryChangedListene&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * &lt;/SPAN&gt;&lt;SPAN&gt;获取移动后的图斑&lt;BR /&gt;&lt;/SPAN&gt;     &lt;SPAN&gt;*&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * &lt;/SPAN&gt;&lt;SPAN&gt;@return&lt;BR /&gt;&lt;/SPAN&gt;     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public static &lt;/SPAN&gt;Geometry &lt;SPAN&gt;getMoveGeometry&lt;/SPAN&gt;() &lt;SPAN&gt;throws &lt;/SPAN&gt;Exception {&lt;BR /&gt;        &lt;SPAN&gt;closeMoveGeometry&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(&lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;!= &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;optNewGeomety&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;return null;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * &lt;/SPAN&gt;&lt;SPAN&gt;移动图斑关闭&lt;BR /&gt;&lt;/SPAN&gt;     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;public static void &lt;/SPAN&gt;&lt;SPAN&gt;closeMoveGeometry&lt;/SPAN&gt;() &lt;SPAN&gt;throws &lt;/SPAN&gt;Exception {&lt;BR /&gt;        &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.stop()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;.getGraphics().clear()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        if &lt;/SPAN&gt;(&lt;SPAN&gt;sketchStyle &lt;/SPAN&gt;!= &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.setSketchStyle(&lt;SPAN&gt;sketchStyle&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;geometryChangedListene &lt;/SPAN&gt;!= &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.removeGeometryChangedListener(&lt;SPAN&gt;geometryChangedListene&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;public static class &lt;/SPAN&gt;GeometryChangedListene &lt;SPAN&gt;implements &lt;/SPAN&gt;SketchGeometryChangedListener {&lt;BR /&gt;        &lt;SPAN&gt;@Override&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;geometryChanged&lt;/SPAN&gt;(SketchGeometryChangedEvent sketchGeometryChangedEvent) {&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.getSketchCreationMode() == SketchCreationMode.&lt;SPAN&gt;FREEHAND_LINE&lt;/SPAN&gt;) {&lt;BR /&gt;&lt;BR /&gt;                Polyline polyline = (Polyline) &lt;SPAN&gt;mainSketchEditor&lt;/SPAN&gt;.getGeometry()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                Iterable&amp;lt;Point&amp;gt; partsAsPoints = polyline.getParts().getPartsAsPoints()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                List&amp;lt;Point&amp;gt; listPoint = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                for &lt;/SPAN&gt;(Point point : partsAsPoints) {&lt;BR /&gt;                    listPoint.add(point)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;                &lt;SPAN&gt;if &lt;/SPAN&gt;(listPoint.size() &amp;gt; &lt;SPAN&gt;0&lt;/SPAN&gt;) {&lt;BR /&gt;                    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                     * 1&lt;/SPAN&gt;&lt;SPAN&gt;、拿出画的流状线的最后一个点坐标&lt;BR /&gt;&lt;/SPAN&gt;                     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;                    Point clickPoint = listPoint.get(listPoint.size() - &lt;SPAN&gt;1&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                     * &lt;/SPAN&gt;&lt;SPAN&gt;计算需要移动图形的中心点坐标与流状线最后一个坐标的方位角&lt;BR /&gt;&lt;/SPAN&gt;                     &lt;SPAN&gt;* */&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;double &lt;/SPAN&gt;azimuth1 = GeometryEngine.&lt;SPAN&gt;distanceGeodetic&lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getExtent().getCenter()&lt;SPAN&gt;, &lt;/SPAN&gt;clickPoint&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            new &lt;/SPAN&gt;LinearUnit(LinearUnitId.&lt;SPAN&gt;METERS&lt;/SPAN&gt;)&lt;SPAN&gt;, new &lt;/SPAN&gt;AngularUnit(AngularUnitId.&lt;SPAN&gt;DEGREES&lt;/SPAN&gt;)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;                            GeodeticCurveType.&lt;SPAN&gt;GREAT_ELLIPTIC&lt;/SPAN&gt;).getAzimuth1()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    PointCollection points = &lt;SPAN&gt;new &lt;/SPAN&gt;PointCollection(&lt;SPAN&gt;mapView&lt;/SPAN&gt;.getSpatialReference())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    points.add(clickPoint)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    points.add(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getExtent().getCenter())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    Polyline polylineLength = &lt;SPAN&gt;new &lt;/SPAN&gt;Polyline(points)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                     * &lt;/SPAN&gt;&lt;SPAN&gt;计算需要移动图形的中心点坐标与流状线最后一个坐标的距离&lt;BR /&gt;&lt;/SPAN&gt;                     &lt;SPAN&gt;* */&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;double &lt;/SPAN&gt;length = GeometryEngine.&lt;SPAN&gt;lengthGeodetic&lt;/SPAN&gt;(polylineLength&lt;SPAN&gt;, new &lt;/SPAN&gt;LinearUnit(LinearUnitId.&lt;SPAN&gt;METERS&lt;/SPAN&gt;)&lt;SPAN&gt;, &lt;/SPAN&gt;GeodeticCurveType.&lt;SPAN&gt;GREAT_ELLIPTIC&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;输出滑动距离和方位角&lt;BR /&gt;&lt;/SPAN&gt;                    Log.&lt;SPAN&gt;e&lt;/SPAN&gt;(&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;滑动距离&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;length + &lt;SPAN&gt;""&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                     * &lt;/SPAN&gt;&lt;SPAN&gt;获取需要移动的面要素的所有点&lt;BR /&gt;&lt;/SPAN&gt;                     &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;                    ImmutablePartCollection parts = &lt;SPAN&gt;null;&lt;BR /&gt;&lt;/SPAN&gt;                    List&amp;lt;Point&amp;gt; listPolygon = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                    boolean &lt;/SPAN&gt;polygonTaget = &lt;SPAN&gt;false;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                    if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POLYGON&lt;/SPAN&gt;) {&lt;BR /&gt;                        Polygon polygon = (Polygon) &lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        parts = polygon.getParts()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        polygonTaget = &lt;SPAN&gt;true;&lt;BR /&gt;&lt;/SPAN&gt;                    } &lt;SPAN&gt;else if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POLYLINE&lt;/SPAN&gt;) {&lt;BR /&gt;                        Polyline polygon = (Polyline) &lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        parts = polygon.getParts()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        polygonTaget = &lt;SPAN&gt;false;&lt;BR /&gt;&lt;/SPAN&gt;                    } &lt;SPAN&gt;else if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POINT&lt;/SPAN&gt;) {&lt;BR /&gt;                        Point point = (Point) &lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        listPolygon.add(point)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        polygonTaget = &lt;SPAN&gt;false;&lt;BR /&gt;&lt;/SPAN&gt;                    }&lt;BR /&gt;                    &lt;SPAN&gt;if &lt;/SPAN&gt;(parts != &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;                        &lt;SPAN&gt;if &lt;/SPAN&gt;(parts.size() &amp;gt; &lt;SPAN&gt;1 &lt;/SPAN&gt;&amp;amp;&amp;amp; polygonTaget) {&lt;BR /&gt;                            List&amp;lt;List&amp;lt;Point&amp;gt;&amp;gt; AllListPolygon = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            for &lt;/SPAN&gt;(&lt;SPAN&gt;int &lt;/SPAN&gt;i = &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;i &amp;lt; parts.size()&lt;SPAN&gt;; &lt;/SPAN&gt;i++) {&lt;BR /&gt;                                Iterable&amp;lt;Point&amp;gt; points1 = parts.get(i).getPoints()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                for &lt;/SPAN&gt;(Point point : points1) {&lt;BR /&gt;                                    listPolygon.add(GeometryEngine.&lt;SPAN&gt;moveGeodetic&lt;/SPAN&gt;(point&lt;SPAN&gt;, &lt;/SPAN&gt;length&lt;SPAN&gt;, new &lt;/SPAN&gt;LinearUnit(LinearUnitId.&lt;SPAN&gt;METERS&lt;/SPAN&gt;)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;                                            azimuth1&lt;SPAN&gt;, new &lt;/SPAN&gt;AngularUnit(AngularUnitId.&lt;SPAN&gt;DEGREES&lt;/SPAN&gt;)&lt;SPAN&gt;, &lt;/SPAN&gt;GeodeticCurveType.&lt;SPAN&gt;GEODESIC&lt;/SPAN&gt;))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                }&lt;BR /&gt;                                AllListPolygon.add(listPolygon)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                            List&amp;lt;Geometry&amp;gt; listGeometry = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            List&amp;lt;Double&amp;gt; doubles = &lt;SPAN&gt;new &lt;/SPAN&gt;ArrayList&amp;lt;&amp;gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            for &lt;/SPAN&gt;(List&amp;lt;Point&amp;gt; list : AllListPolygon) {&lt;BR /&gt;                                PointCollection polygonList = &lt;SPAN&gt;new &lt;/SPAN&gt;PointCollection(&lt;SPAN&gt;mapView&lt;/SPAN&gt;.getSpatialReference())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                polygonList.addAll(list)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                Polygon polygon1 = &lt;SPAN&gt;new &lt;/SPAN&gt;Polygon(polygonList)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                double &lt;/SPAN&gt;geodetic = GeometryEngine.&lt;SPAN&gt;areaGeodetic&lt;/SPAN&gt;(polygon1&lt;SPAN&gt;, new &lt;/SPAN&gt;AreaUnit(AreaUnitId.&lt;SPAN&gt;SQUARE_METERS&lt;/SPAN&gt;)&lt;SPAN&gt;, &lt;/SPAN&gt;GeodeticCurveType.&lt;SPAN&gt;SHAPE_PRESERVING&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                listGeometry.add(polygon1)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                doubles.add(geodetic)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                            &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= GeometryEngine.&lt;SPAN&gt;union&lt;/SPAN&gt;(listGeometry)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            Double max = Collections.&lt;SPAN&gt;max&lt;/SPAN&gt;(doubles)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            int &lt;/SPAN&gt;i = doubles.indexOf(max)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            for &lt;/SPAN&gt;(&lt;SPAN&gt;int &lt;/SPAN&gt;j = &lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;j &amp;lt; listPolygon.size()&lt;SPAN&gt;; &lt;/SPAN&gt;j++) {&lt;BR /&gt;                                &lt;SPAN&gt;if &lt;/SPAN&gt;(i != j) {&lt;BR /&gt;                                    &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= GeometryEngine.&lt;SPAN&gt;difference&lt;/SPAN&gt;(&lt;SPAN&gt;optNewGeomety&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;listPolygon.get(j))&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                                }&lt;BR /&gt;                            }&lt;BR /&gt;                        } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                            Iterable&amp;lt;Point&amp;gt; partsAsPointsPolygon = parts.getPartsAsPoints()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                            for &lt;/SPAN&gt;(Point point : partsAsPointsPolygon) {&lt;BR /&gt;                                listPolygon.add(point)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                            }&lt;BR /&gt;                        }&lt;BR /&gt;                        &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                         * &lt;/SPAN&gt;&lt;SPAN&gt;需要移动的面要素的所有点向上面计算的方位角，距离整体移动&lt;BR /&gt;&lt;/SPAN&gt;                         &lt;SPAN&gt;*/&lt;BR /&gt;&lt;/SPAN&gt;                        List&amp;lt;Point&amp;gt; list = GeometryEngine.&lt;SPAN&gt;moveGeodetic&lt;/SPAN&gt;(listPolygon&lt;SPAN&gt;, &lt;/SPAN&gt;length&lt;SPAN&gt;, new &lt;/SPAN&gt;LinearUnit(LinearUnitId.&lt;SPAN&gt;METERS&lt;/SPAN&gt;)&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;                                azimuth1&lt;SPAN&gt;, new &lt;/SPAN&gt;AngularUnit(AngularUnitId.&lt;SPAN&gt;DEGREES&lt;/SPAN&gt;)&lt;SPAN&gt;, &lt;/SPAN&gt;GeodeticCurveType.&lt;SPAN&gt;GEODESIC&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        PointCollection polygonList = &lt;SPAN&gt;new &lt;/SPAN&gt;PointCollection(&lt;SPAN&gt;mapView&lt;/SPAN&gt;.getSpatialReference())&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        polygonList.addAll(list)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                        if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POLYGON&lt;/SPAN&gt;) {&lt;BR /&gt;                            &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;Polygon(polygonList)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        } &lt;SPAN&gt;else if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POLYLINE&lt;/SPAN&gt;) {&lt;BR /&gt;                            &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= &lt;SPAN&gt;new &lt;/SPAN&gt;Polyline(polygonList)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        } &lt;SPAN&gt;else if &lt;/SPAN&gt;(&lt;SPAN&gt;tranGeometry&lt;/SPAN&gt;.getGeometryType() == GeometryType.&lt;SPAN&gt;POINT&lt;/SPAN&gt;) {&lt;BR /&gt;                            &lt;SPAN&gt;optNewGeomety &lt;/SPAN&gt;= list.get(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                        }&lt;BR /&gt;                    }&lt;BR /&gt;                    &lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;.getGraphics().clear()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                    MapConfig.&lt;SPAN&gt;highlightGeometry&lt;/SPAN&gt;(&lt;SPAN&gt;optNewGeomety&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;mHighlightGraphicsOverlay&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            }&lt;BR /&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;}&lt;/PRE&gt;</description>
      <pubDate>Mon, 27 May 2024 02:30:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/i-didn-t-find-a-way-to-move-elements-in-the-api-so/m-p/1478962#M6213</guid>
      <dc:creator>pengpengdeng</dc:creator>
      <dc:date>2024-05-27T02:30:55Z</dc:date>
    </item>
    <item>
      <title>Re: I didn't find a way to move elements in the API, so I made one</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/i-didn-t-find-a-way-to-move-elements-in-the-api-so/m-p/1513297#M6219</link>
      <description>&lt;P&gt;Thanks for posting this topic! In the new &lt;A href="https://developers.arcgis.com/kotlin/api-reference/arcgis-maps-kotlin/com.arcgismaps.mapping.view.geometryeditor/-geometry-editor/index.html" target="_blank"&gt;GeometryEditor&lt;/A&gt; API, there is a method to achieve this functionality -&amp;nbsp;&lt;A href="https://developers.arcgis.com/kotlin/api-reference/arcgis-maps-kotlin/com.arcgismaps.mapping.view.geometryeditor/-geometry-editor/move-selected-element.html" target="_blank"&gt;moveSelectedElement&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jul 2024 22:06:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/i-didn-t-find-a-way-to-move-elements-in-the-api-so/m-p/1513297#M6219</guid>
      <dc:creator>Ting</dc:creator>
      <dc:date>2024-07-31T22:06:21Z</dc:date>
    </item>
  </channel>
</rss>

