Search code examples
androidarcgisarcgis-runtimearcgis-android-api

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


In Android: I want to draw polygon automatically by detecting paths in farms on base map satellite view in given extent. Is it possible ?. For example I have Farm having multiple acres. When I mark Farm with a polygon feature, I want to further divide this farm into acres and want to create multiple polygon features automatically. Is it possible? What are the options?

May be Edge detection can help? But edge detection is possible in Android SDK?

Can I create multiple polygons within a given polygon and each small polygon has area = 1 ACRES


Solution

  • There are a couple of things you're asking for here, it seems.

    1. Feature Extraction from Imagery

    This is not something the ArcGIS Runtime SDK is designed to do directly.

    You might be able to use 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()

    You should also take a look at some of the ArcGIS Pro imagery tools. You could build a GP tool using some of these desktop techniques and publish a GP Service on your own ArcGIS Enterprise instance for consumption by your mobile app. The app could have the GP Service take the farm outline and return the derived features.

    2. Subdividing a polygon into 1 acre chunks

    The GeometryEngine could definitely help you here (see the cut operation - you could grid out the farm and perform multiple cuts with multiple polylines). However it seems you don't simply want regular orthogonal 1 acre chunks but instead to follow the visible field boundaries within a farm (taking into account access roads, walls, hedges, water, perhaps buildings etc.). If that's the case, you're back to Feature Extraction.

    Hope this helps. It's really beyond the scope of the Runtime out of the box at present. There's no "Find the features from this imagery" Runtime API. However, depending on the nature of your data, the tools are there (raster function, map image export, custom image processing, or a custom GP Service) for you to do it.