Только-только начала изучать Avenue.
Мне необходимо создать полигональную тему с сектором круга. Круг создала, нашла функцию Split. Только в функции SplitTool с пользовательской линией срабатывает, а с заданной линией никак не работает.
Здесь наверное есть знающие люди. Помогите если можно кодом.
Cоздать полигональную тему с сектором круга
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 28 авг 2008, 11:44
- Репутация: 0
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Cоздать полигональную тему с сектором круга
приведите свой код для начала
тему я переименовал
тему я переименовал
пристегивайтесь, турбулентность прямо по курсу
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 28 авг 2008, 11:44
- Репутация: 0
Re: Cоздать полигональную тему с сектором круга
'**Создаю новую тему с кругом
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
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
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость