Создание пути с учетом рельефа местности

0 голосов
спросил 14 Сен, 09 от BAV (1,020 баллов) в категории Программные продукты Esri

Народ подскажите.

Имеем точку а и точку b, а также слой горизонталей с отметками высот или построенный тин, на их основе.
Вопрос: Как расчитать   длинну линии между точкой а и точкой b, а так же прорисовать её на карте, учитывая рельеф местности (т.е. все склоны и неровности)?
 
Спасибо. 

7 Ответы

0 голосов
ответил 15 Сен, 09 от geologic (39,860 баллов)
Так слой горизоталей или TIN вы имеете? Это разные вещи.
Если есть модель рельефа, то проложение строится штатным инструментом . Трехмерная длина... не уверен, что Arc её считает, но найти формулы несложно - например, в коллекции Easy Calculate: shape_Return3D_Length.cal

Построить 3D чисто по горизонталям более сложная задача, но вам вряд ли нужно.
    
0 голосов
ответил 15 Сен, 09 от aleonov (7,720 баллов)
3D длина считается инструментом Interpolate Shape (3D Analyst) http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?id=1147&pid=1146&topicname=Interpolate_Shape_(3D_Analyst)- создается новый класс объектов в поле Length которой будет длина объекта с учетом поверхности
0 голосов
ответил 16 Сен, 09 от BAV (1,020 баллов)
Спасибо, ну что-то не получается.
В первом случае по совету geologic, не пойму в каких еденицах он считает 3d длинну, она ведь не сильно должна отличаться от простой длинны,у меня она в км, а во втором случае по совету LAL77  столбца он не создаёт, попробовал с помощью  Surface Length, столбец создает, но опять не понятна еденица измерения длинны, где её можно задать?
0 голосов
ответил 16 Сен, 09 от geologic (39,860 баллов)
По умолчанию Arc считает длину в единицах окна карты (датафрейма). Если вы не мудрили и просто загрузили некий слой, то датафрейм настроен на единицы вашего слоя. Километры они или нет, он "не знает" и мы не знаем. Ваш подсчет по слою, есессно, может отличаться от единиц слоя - мы же не знаем, как вы его делали.

Проверить можно просто - загружаете вашу модель, делаете линию, далее Easy Калькуляцией считаете и обычную длину, и трехмерную. Пишете нам, что получилось - тогда и поговорим про разницу ;)
0 голосов
ответил 16 Сен, 09 от BAV (1,020 баллов)

Подсчет длинны по слою делал  так: в таблице атрибутов создал новый столбец с типом double.   Потом с помощью инструмента  calculate geometry рассчитал длинну каждого объекта.

Вот что получилось image
 
Значит "Длинна" и "Длинна_енд" в км - это длинна посчитанная по выше описанному методу. "Длинна 3d" - это соответственно длинна 3d посчитанная с помощью easy Calculate. "Длинна_отл" - длинна  посчитанная с помощью easy Calculate.
0 голосов
ответил 16 Сен, 09 от geologic (39,860 баллов)
Да, загадочно. А у вас случаем, шейп не в градусах? Может быть конфликт между высотой и длиной, поскольку не пересчитывается. Лучше чтобы все было в метрах, модель, шейп, вид и подсчет. Больше ничего на ум не приходит ;)
0 голосов
ответил 18 Сен, 09 от PORTER (8,900 баллов)
Послушайте а у вас  линия являться 3D полу линией

и еще слой в какой координатной системе проекционной или же в

географической

А расчет кроме выше описанных методов можно делать и в Автокаде

Перебросив слой туда причем слой обязательно должен быть 3D

полулинией можно с помощью пропертес определить длину 3D

полулинией
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...