move как-то странно работает

0 голосов
спросил 03 Март, 05 от Гость (210,080 баллов) в категории Программные продукты Esri

Поделитесь опытом, пожалуйста!!!

Опять проблема! Запускаю нижеприведенный скрипт на линейной теме, в которой линии заменены на линии со стрелками. Все стрелки идут в одном направлении. После отработки move сдвинутые линии частично перевернуты. Это чего, так и надо????? image

Все вроде одинаково сдвигалось... Я собственно говоря решение и сама найду, я только узнать хотела - это чего в этом ArcView все таким макаром работать будет???????? Или я чего-то не понимаю?

myview=av.getactivedoc
tems=myview.getthemes
vo2=tems.get(0)
ftline=vo2.getftab
fshl=ftline.findfield("shape")
fidl=ftline.findfield("lin_id")
dx=50
dy=50
if (ftline.canedit=TRUE) then
ftline.seteditable(true)
else
msgbox.info("can't edit","")
exit
end
e_fidl=50
jj=1
for each i in ftline
if (jj>13) then
break
end
jj=jj+1
shl=ftline.returnvalue(fshl,i)
ff=ftline.returnvalue(fidl,i)
shl2=shl.asline.move(dx,dy)
shl2=shl2.aspolyline
j=ftline.addrecord
ftline.setvalue(fshl,j,shl2)
ftline.setvalue(fidl,j,e_fidl)
e_fidl=e_fidl+1
end
ftline.seteditable(false)
myView.Invalidate

Да, 13 - это у меня число записей в теме.

5 Ответы

0 голосов
ответил 03 Март, 05 от Гость (210,080 баллов)

Т.е. получается нельзя использовать asline и соответственно все команды, использующие это?

0 голосов
ответил 03 Март, 05 от Grigoriy (127,020 баллов)

А вот это зачем?

shl2=shl.asline.move(dx,dy)
shl2=shl2.aspolyline

Если нужно просто сдвинуть, то достаточно:

shl=ftline.returnvalue(fshl,i)
ff=ftline.returnvalue(fidl,i)
j=ftline.addrecord
ftline.setvalue(fshl,j,shl.move(dx,dy))
ftline.setvalue(fidl,j,e_fidl)


При этом не должно происходить искажений исходного шейпа

 

0 голосов
ответил 03 Март, 05 от Гость (210,080 баллов)

Дело в том, что тема у меня polyline, а не line (я тут уже вчера писала про это в теме про returnstart, тут забыла уточнить, пардон), но это формально, а фактически линии из 2х точек состоят. А  move только к line применим.  

   Искажений исходного шейпа у меня не происходит, меняют направление только некоторые из созданных линий. Хотя не должны менять, должны просто сдвигаться. Мне так кажется. По логике.

 

 

0 голосов
ответил 03 Март, 05 от crocodile (2,120 баллов)
Смотри хелп по классу Shape (внимательноimage ) метод Move от класса Shape наследуется классом PolyLine (ибо он его потомок)
0 голосов
ответил 03 Март, 05 от Гость (210,080 баллов)

Да, уже 10 минут назад посмотрела! image Как раз перед прочтением.

Про shape сначала-то не заметила. Теперь и правда работает! Всем спасибо!! image

 

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