Android: рисовать многоугольник, обнаруживая пути в фермах на спутниковой карте базовой карты в заданном экстенте

В Android: я хочу рисовать многоугольник автоматически, обнаруживая пути в фермах на спутниковой карте базовой карты в заданном экстенте. Является ли это возможным?. Например, у меня есть ферма с несколькими акрами. Когда я отмечаю Ферму полигональным объектом, я хочу разделить эту ферму на акры и автоматически создать несколько полигональных объектов. Является ли это возможным? Какие есть варианты?

Может ли Edge Detection может помочь? Но обнаружение края возможно в Android SDK?

Могу ли я создать несколько полигонов в данном полигоне, и каждый маленький полигон имеет площадь = 1 АКР

2 ответа

Решение

Кажется, здесь есть пара вещей, о которых вы просите.

1. Извлечение функций из изображений

Это не то, для чего ArcGIS Runtime SDK предназначен для непосредственного выполнения.

Возможно, вы сможете использовать растровые функции, чтобы помочь вам обрабатывать изображения таким образом, чтобы вам было проще извлекать части, но вам придется написать эту логику "извлечения из обработанных изображений в объекты" самостоятельно. Обратите внимание, что вы можете получить отображение текущей карты для подачи в эту пользовательскую логику, используя exportImage()

Вам также следует взглянуть на некоторые инструменты обработки изображений ArcGIS Pro. Вы можете создать инструмент GP, используя некоторые из этих методов рабочего стола, и опубликовать Сервис GP на своем собственном экземпляре ArcGIS Enterprise для использования вашим мобильным приложением. Приложение может заставить GP Service взять схему фермы и вернуть производные функции.

2. Разделение многоугольника на куски по 1 акру

GeometryEngine определенно может помочь вам (см. Операцию вырезания - вы можете создать сетку фермы и выполнить несколько сокращений с несколькими полилиниями). Однако кажется, что вы хотите не просто обычные ортогональные куски в 1 акр, а вместо этого следовать за видимыми границами поля внутри фермы (принимая во внимание подъездные пути, стены, живые изгороди, воду, возможно, здания и т. Д.). Если это так, вы вернулись к функции извлечения.

Надеюсь это поможет. Это действительно выходит за рамки Runtime из коробки в настоящее время. Нет API-интерфейса Runtime для поиска функций. Однако, в зависимости от характера ваших данных, инструменты для этого есть (растровая функция, экспорт изображения карты, пользовательская обработка изображений или пользовательская служба GP), чтобы вы могли это сделать.

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);
Другие вопросы по тегам