如何在 Arcgis 中将选中的 Envelope 区域设置为 MapView Android?

How to set selected Envelope area to MapView in Arcgis Android?

我加载了离线 .geodatabase esri 地图。我正在 MapView 上绘制一个信封。现在我希望信封区域适合 MapView。

我在下面试过 -

mMapView.setExtent(selectedAreaGraphic.getGeometry());

我在添加图形时使用 UniqueID 从图形层获取 SelectedAreaGraphic。

它没有完全填满 MapView 上选定的信封区域。

  1. 您可以从Graphic Layer中获取Envelope绘制的graphicID,即[代表区域的矩形形状]。

  2. 现在您可以从这些graphicID中查询带有Graphic Geometry的Envelope了。

  3. 将所有这些 Envelope 指向新的 Envelope。

    Envelope env = new Envelope();
    Envelope NewEnv = new Envelope();
    for (int i: mGraphicsLayer.getGraphicIDs()) {
        try {
            Polygon p = (Polygon) mGraphicsLayer.getGraphic(i).getGeometry();
            p.queryEnvelope(env);
            NewEnv.merge(env);
        } catch (Exception e) {
        e.printStackTrace();
        }
    }
    
  4. 现在将 MapView 范围设置为新的 Envelope。

    mMapView.setExtent(NewEnv);