Android: 通过在给定范围内的底图卫星视图上检测农场中的路径来绘制多边形

Android: Draw polygon by detecting paths in farms on base map satellite view in given extent

在Android中:我想通过检测给定范围内底图卫星视图上农场中的路径来自动绘制多边形。可能吗 ?。例如,我有多个英亩的农场。当我用多边形要素标记农场时,我想进一步将这个农场划分为英亩,并希望自动创建多个多边形要素。可能吗?有哪些选择?

边缘检测可能有帮助吗?但是边缘检测在 Android SDK 中是可能的吗?

我可以在给定的多边形内创建多个多边形并且每个小多边形的面积 = 1 ACRES

List<PatternItem> patternItems = new ArrayList<>();
patternItems.add(new PatternItem(1,5.2f));
PolygonOptions firstPO = new PolygonOptions()
    .add(new LatLng(33.333, 22.222))
    .add(new LatLng(33.444, 22.444))
    .strokeJointType(JointType.ROUND)
    .strokePattern(patternItems)

googleMap.addPolygon(firstPO);
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

看来您在这里要求的有几件事。

1.从图像中提取特征

这不是 ArcGIS Runtime SDK 旨在直接执行的操作。

您也许可以使用 Raster Functions to help you process the imagery in a way that makes deriving sub-parcels simpler for you, but you'd have to write that "extraction from processed imagery to features" logic yourself. Note, you can get the current map display to feed into that custom logic using exportImage()

您还应该看看其中的一些 ArcGIS Pro imagery tools。您可以使用其中一些桌面技术构建 GP 工具,并在您自己的 ArcGIS Enterprise 实例上发布 GP 服务以供您的移动应用程序使用。该应用程序可以让 GP 服务获取农场轮廓和 return 派生特征。

2。将多边形细分为 1 英亩的块

GeometryEngine 绝对可以在这里帮助您(请参阅 cut 操作 - 您可以将农场网格化并使用多条折线执行多次切割)。然而,您似乎不仅仅想要常规的正交 1 英亩大块,而是遵循农场内可见的田地边界(考虑到通道、墙壁、树篱、水,也许还有建筑物等)。如果是这样,您将回到特征提取。

希望这对您有所帮助。这确实超出了目前开箱即用的Runtime的范围。没有 "Find the features from this imagery" 运行时 API。但是,根据您的数据的性质,可以使用工具(栅格函数、地图图像导出、自定义图像处理或自定义 GP 服务)来执行此操作。