Страница 1 из 1

Вывод расстояния между вершинами полигона в Arcview GIS

Добавлено: 13 сен 2006, 23:21
lionkil_kil
Вот столкнулся с такой необходимостью

есть полигон, нужно вывести меры лини (расстояние между точками), прошерстил через поиск всевозможные варианты, но задачу свою так и не решил, поделитесь опытом в реализации вывода расстояний для полигонов между вертексами можно через таблицу, а можно и сразу в аннотацию :) ПЛЗ

Добавлено: 19 сен 2006, 20:28
Максим Дубинин
результат кладется в c:\lines.shp

Код: Выделить всё

atheme = av.getactivedoc.getactivethemes.get(0)
aFTab = atheme.getftab

anewline = FTab.makenew("c:\lines.shp".asfilename, polyline)
f_length = Field.Make("length", #FIELD_DOUBLE, 20, 10)
f_shape2 = anewline.FindField("shape") 
anewline.addfields({f_length})

f_shape = aFTab.FindField("shape")

anewline.seteditable(true)

for each rec in aFTab
  apolygon = aFTab.ReturnValue(f_shape, rec)
  aline = apolygon.aspolyline
  points = aline.asmultipoint.aslist
  numpoints = points.count - 2
  
  for each i in 0..numpoints
    apoint = points.get(i)
    newline = line.make(points.get(i), points.get(i+1))
    length = newline.ReturnLength
    newrec = anewline.addrecord
    anewline.setvalue(f_shape, newrec, newline.aspolyline)
    anewline.setvalue(f_length, newrec, length)
  end
  
end
anewline.seteditable(false)

Добавлено: 19 сен 2006, 21:23
lionkil_kil
sim писал(а):результат кладется в c:\lines.shp
Очень и очень признателен :D , а позвольте усложнить :)
Если есть необходимость, добавить лини или в косметическом слое или в новь созданом шейпе, так же вывести длину...можно использовать сей скрипт под Арквью и позвольте узнать, где выставляется кол-во знаков после "," ???