Cоздать полигональную тему с сектором круга

Arcview GIS 3.x, Arcinfo Workstation, Mapobjects
Ответить
Sofiya
Новоприбывший
Сообщения: 2
Зарегистрирован: 28 авг 2008, 11:44
Репутация: 0

Cоздать полигональную тему с сектором круга

Сообщение Sofiya » 28 авг 2008, 11:58

Только-только начала изучать Avenue.

Мне необходимо создать полигональную тему с сектором круга. Круг создала, нашла функцию Split. Только в функции SplitTool с пользовательской линией срабатывает, а с заданной линией никак не работает.

Здесь наверное есть знающие люди. Помогите если можно кодом.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Cоздать полигональную тему с сектором круга

Сообщение Максим Дубинин » 29 авг 2008, 02:50

приведите свой код для начала
тему я переименовал
пристегивайтесь, турбулентность прямо по курсу

Sofiya
Новоприбывший
Сообщения: 2
Зарегистрирован: 28 авг 2008, 11:44
Репутация: 0

Re: Cоздать полигональную тему с сектором круга

Сообщение Sofiya » 13 сен 2008, 10:50

'**Создаю новую тему с кругом
tbl = FTab.MakeNew("F:\AXOV\Test\test.shp".AsFileName, Polygon)

theTheme = FTheme.Make(tbl)
shpField = tbl.FindField("Shape")
fields = List.Make
fields.Add(Field.Make("IDS", #FIELD_SHORT, 4, 0))
tbl.AddFields(fields)

'** Обхожу таблицу в поисках нужной точки
for each rec1 in aFTab
if (aFTab.ReturnValue(townField, rec1)=townValue) then
rec = tbl.AddRecord
g = aFTab.ReturnValue(shpField1, rec1)
x = g.Getx
y = g.Gety
theCircle = Circle.Make(x@y, r)

tbl.SetValue( shpField, rec, theCircle.AsPolygon )

end
end

'**Добавляю новую тему
theView.AddTheme(theTheme)
theTheme.SetVisible(TRUE)
theTheme.SetActive (TRUE)
theField = theTheme.GetFTab.FindField("Shape")
theType = theField.GetType

x1 = x-(r+0.1)
x2 = x+(r+0.1)
y1 = y
y2 = y
theView.SetEditableTheme(theTheme)

theTheme.GetFtab.BeginTransaction
l = PolyLine.Make( {{x1@y1, x@y}, {x@y, x2@y2}})

gl = GraphicShape.Make(l)
theTheme.Split(l)

theTheme.GetFtab.EndTransaction
theTheme.StopEditing(TRUE)
theView.SetEditableTheme(NIL)
theView.GetGraphics.RemoveGraphic(l1)

av.GetProject.SetModified(true)
end

Ответить

Вернуться в «Arcview GIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость