Обчислення ширини багатокутника на робочому столі ArcGIS?


10

Чи легко обчислити ширину багатокутника за допомогою ArcGIS 9.3.1 або 10?

Я знайшов кілька сценаріїв для 9.1, але вони не працюватимуть. Я можу використовувати ширину в найширшій, найвужчій точці або середній. Це не потрібно бути точним, але його потрібно дещо автоматизувати, бо я маю пару сотень для обчислення.


1
Якщо через рік хтось інший шукає відповідь: gis.stackexchange.com/a/181801/10919
Том,

Відповіді:


6

Ширину багатокутника можна отримати за допомогою прямокутника, що обмежує мінімальну площу. Це посилання ... обмежуючі контейнери ... a забезпечує одне рішення. Обчисліть це як мінімум «довжини» та «ширини» прямокутника. Він доступний на всіх рівнях ліцензій для ArcMap (оновлено до січня 2016 року)


Ця відповідь 5 років. Чи були якісь оновлення щодо ArcGIS чи будь-яких інших методів для цього з моменту опублікування цієї відповіді?
dassouki

1
@Dassouki Дан Паттерсон (який розмістив інше місце в цій темі) кодує подібні рішення протягом багатьох років. Він є першим місцем, де я б хотів шукати оновлення та нові рішення в ArcGIS.
whuber

@whuber оновив посилання ... спасибі за голову вгору

1

Це лише часткова відповідь на ваше запитання, але це може бути вказівник у правильному напрямку. Для уточнення це знайде ширину конверта багатокутника в найширшій точці. Додайте до своєї функції атрибут з типом поля подвійним. Відкрийте калькулятор поля, а потім натисніть кнопку Додатково. Вставте цей код у блок коду та встановіть створене вами поле рівним Ouput

Dim Output As Double
Dim pPoly as IPolygon
Set pPoly = [Shape]
Dim pEnve as IEnvelope
Set pEnve = pPoly.Envelope
Output = pEnve.Width

Працює в 9.3.1. Спочатку розміщено тут .


Здається, це ширина конверта: це, здається, не те, про що задається ОП.
whuber

Я відредагував свою відповідь, щоб уточнити це, дякую, що вказав на це. У початковому запитанні було сказано, що воно не повинно бути точним, тому ширина конверта може бути достатньою.
Захарій

1
На жаль, ширина конверта настільки ж неточна, як можна отримати. Наприклад, коли функція вирівнюється по ширині у вертикальному напрямку, "ширина" конверта фактично оцінює довжину функції . Ваша ідея використання ширини конверта була використана в коді, який систематично обертає функцію в пошуку мінімальної ширини конверта: у багатьох випадках це обгрунтоване твердження про розумну оцінку ширини. Я вважаю, що Ден Паттерсон має такий внесок у ArcScripts.
whuber
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.