Подскажите, возможно ли в ArcView ....?

0 голосов
спросил 08 Апр, 04 от Alina (640 баллов) в категории Программные продукты Esri

Начала изучать ArcView, но никак не могу понять : 

Можно ли в ArcView решить следующие задачи и если можно то как?

1. Автоматически считать расстояния от одной точки до другой.  И можно ли сделать таблицу, допустим с двумя координатами, по которой автоматически строятся  прямые и если изменять эти координаты, соответственно изменяется длинну прямых?

2. Можно ли на модели вентиляции изобразить стрелочками движение воздуха, т.е не просто изобразить, а показать как перемещается? Или при изменении значений в таблице, чтобы менялся цвет стрелок (например, если скорость = 4,2 м/с, то синим, если другая, то зелным... )

Действительно не знаю пока возможностей программы, новичекimage. Заранее спасибоimage

15 Ответы

0 голосов
ответил 09 Апр, 04 от dios (5,300 баллов)
если есть две точки расстояние можно посчитать через ддлину линии, соединяющей их

myLine = Line.Make( 0@0, 1@0 )
Distance = myLine.returnlength

для изменения, создаем тему линий, изменяем объект Shape по желанию.

По поводу стрелок

GraphicList - Список Графики

aGraphicList.AddBatch (aGraphic)
Добавляет aGraphic (Графику) к aGraphicList (Списку Графики). Используйте AddBatch (Добавить Пакет) для помещения сразу многих графических элементов в список. Графика не появятся на отображении, пока Вы не дадите запрос EndBatch (Конец Пакета). Вы должны выдать запрос EndBatch (Конец Пакета). В приведенном ниже примере добавляются много графики, но она не отображаются до тех пор, пока не подано EndBatch (Конец Пакета).

Следующие запросы вызывают аннулирование, форсирующее немедленное обновление отображения и подавляющее AddBatch (Добавить Пакет): aGraphicList.UnselectAll, aGraphicList.SelectAll, aGraphic.Select или aGraphic.Unselect. Чтобы установить выбор без обновления графики, используйте запрос aGraphic.SetSelected (Графика. Установить Выбранным).

Синтаксис
aGraphicList.AddBatch (aGraphic)

цвет, задается при создании символа
0 голосов
ответил 09 Апр, 04 от dios (5,300 баллов)
а вообще, как показывает практика в ArcView возможно практически все, правда не всегда напрямую.
0 голосов
ответил 09 Апр, 04 от Vedmak (2,340 баллов)

А если что-то невозможно, то всегда можно вызвать то приложение, где это возможно...image

0 голосов
ответил 09 Апр, 04 от Alina (640 баллов)

dios,
спасибо (!) за помощь буду разбираться с тем что ты написал image, попробую.

Ведьмак, а как можно подключать свои формы созданные в делфи например?...в ArcView в режиме Dialogs можно создавать кнопочные формы....но по-моему возможности не очень велики...а при импорте своих форм поддерживает какой-то формат *.ded

0 голосов
ответил 09 Апр, 04 от dios (5,300 баллов)
проше всего создавать внешние библиотеки (dll-ки) на дельфях или си не важно, а затем вызывать функции из этих dll. Тут уже полная свобода творчества.

для примера

_DLL1 = DLL.Make(("C:\XXX.dll").asFileName)
_func1 = DLLProc.Make(_DLL1, "имя функции", #DLLPROC_TYPE_INT32,{#DLLPROC_TYPE_INT32})
первое #DLLPROC_TYPE_INT32 - это возвращяемый параметр,затем в скобках список параметров.


далее _func1.Call({XXX})

а на счет DIALOG - по хорошему все основные вещи для создания диалога в нем есть, но не больше.

0 голосов
ответил 09 Апр, 04 от dios (5,300 баллов)
формат *.ded - попросту текстовый файл, odb формата.

такой же как *.avx или *.apr
0 голосов
ответил 09 Апр, 04 от Vedmak (2,340 баллов)

И вообще Диалог Дизигнер - вещь конечно интересная по замыслу, но очень уж в себе. Глючит, рушит диалоги в проектах, а после руссификации - вообще перестает работать. Если уж и создавать диалоги в арквью - то ручками - получается гораздо надежнее, хотя и более трудоемко. Но если писать серьезный приклад под тройку - без dll обойтись можно, конечно, но будет просто некрасиво и ненадежно (в плане работы именно с формами).

 

0 голосов
ответил 09 Апр, 04 от Alina (640 баллов)

А если что-то невозможно, то всегда можно вызвать то приложение, где это возможно...image

 

А как их можно вызвать то? Это осуществляется с помощью языка AV?

0 голосов
ответил 10 Апр, 04 от dios (5,300 баллов)
про вызов читать выше.
или в хелпе про класс DLL. можно сделать и EXE-шник
тогда вызов - System.Execute (CommandLine)

на счет руссификации - так это просто надо патчик к диалогу поставить и все в порядке.

а про не надежнось - это смотря как код писать, вообще диалог надежен на столько, насколько сама арка, глюки конечно бывают, но это не смертельно. У меня в одном проекте полтора десятка авенюшных диалогов, и ничего, все работает.
0 голосов
ответил 12 Апр, 04 от Vasiliy2 (8,240 баллов)
Ведьмаку насчет "Диалог Дизигнер -  после руссификации - вообще перестает работать". В версии 3.3 это наконец починили
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...