Да легко. Рисуете вторую линию и...
vid = av.GetActiveDoc
pl = vid.GetGraphics.Get(0)
pl2 = vid.GetGraphics.Get(1)
pl = pl.GetShape
pl2 = pl2.GetShape
step = 0.1
for each i in 1..1000
vid.Draw(vid.GetDisplay)
pnt = pl.Along(step)
pnt2 = pl2.Along(step)
if (step * 1.8 < 100) then
pnt3 = pl2.Along(100 - (step * 1.8))
else
pnt3 = pl2.Along((step * 1.8) - 100)
end
pnt4 = pl2.Along(100 - (step / 1.5))
if (vid.GetGraphics.HasSelected ) then
vid.GetGraphics.ClearSelected
end
gsh = GraphicShape.Make(pnt)
gsh2 = GraphicShape.Make(pnt2)
gsh3 = GraphicShape.Make(pnt3)
gsh4 = GraphicShape.Make(pnt4)
vid.GetGraphics.Add(gsh)
vid.GetGraphics.Add(gsh2)
vid.GetGraphics.Add(gsh3)
vid.GetGraphics.Add(gsh4)
gsh.Select
gsh2.Select
gsh3.Select
gsh4.Select
step = step+0.1
end
if (vid.GetGraphics.HasSelected ) then
vid.GetGraphics.ClearSelected
end
return nil
А ещё можно написать библиотеку на C++, которая бы принимала данные, скажем, из NMEA GPS-приёмника, разбирала бы эти данные, и отсылала координаты в ArcView, где они бы выводились на карту. А ещё можно класть координаты объекта в базу ArcGIS Server (SDE), и неограниченное число клиентов (ArcView, ArcMap или другие) брали бы данные с этого сервера. Но это, как говорится, уже совсем другая история ;-)