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

时间:2019-01-08 05:24:26

标签: android arcgis arcgis-runtime arcgis-android-api

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

边缘检测是否可以提供帮助?但是在Android SDK中可以进行边缘检测吗?

我可以在一个给定的多边形内创建多个多边形,每个小多边形的面积为1英亩

2 个答案:

答案 0 :(得分:1)

看来,您需要做几件事。

1。从图像中提取特征

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

您也许可以使用Raster Functions来帮助您处理图像,从而使子宗地的派生变得更简单,但是您必须编写“从处理后的图像到要素的提取”逻辑你自己请注意,您可以使用exportImage()

将当前地图显示输入该自定义逻辑

您还应该查看一些ArcGIS Pro imagery tools。您可以使用其中一些桌面技术来构建GP工具,并在自己的ArcGIS Enterprise实例上发布GP服务,以供移动应用使用。该应用可以让GP服务获取服务器场轮廓并返回派生的功能。

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

GeometryEngine绝对可以在这里为您提供帮助(请参阅cut操作-您可以网格出农场并使用多条折线执行多次切割)。但是,您似乎不只是想要规则的正交1英亩块,而是遵循农场内的可见区域边界(考虑到道路,墙壁,绿篱,水,也许还有建筑物等)。在这种情况下,您将返回特征提取。

希望这会有所帮助。目前,这确实超出了运行时的范围。没有“从此图像中查找功能”运行时API。但是,根据数据的性质,可以使用这些工具(栅格功能,地图图像导出,自定义图像处理或自定义GP服务)。

答案 1 :(得分:0)

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);