Перевод линий в точки

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

Люди, нужна помощь.

Требуется перевести линейную тему в точечную по узлам. Есть рельеф, его надо сделать точками для построения грида. Где взять скрипт? А то я  скачал подборку Стороженко, но у меня этот скрипт завешивает арквьюшку полность. image

1 Ответ

0 голосов
ответил 28 Окт, 05 от Гость (210,080 баллов)

делалось на коленке, для себя,,,,, подправь себе

aView = av.GetActiveDoc
aThem = aView.GetActiveThemes.Get(0)
aTabl = aThem.GetFTab
aShap = aTabl.FindField("Shape")
aEval = aTabl.FindField("<Elevation>")

fName = FileDialog.Put( "output".AsFileName, "*.txt", "Write XYZ-dat (line to point)")
if (nil = fName) then return nil end
step = MsgBox.Input("Задайте шаг по линии:", "Parameters", "10")
if (nil = step) then return nil end
if (step.IsNumber.Not) then
  MsgBox.Info("Введено нечисловое значение","ERROR")
  return nil
end
step = step.AsNumber

aBitMap = aTabl.GetSelection
if (aBitMap.Count < 1) then
  aTabl.GetSelection.SetAll
  aTabl.UpdateSelection
  aBitMap = aTabl.GetSelection
end

outf = LineFile.Make (fName, #FILE_PERM_WRITE)
outf.WriteElt("X,Y,Z")

for each rec in aBitMap
  aZet = aTabl.ReturnValue(aEval, rec)
  aLin = aTabl.ReturnValue(aShap, rec)
  pntList = aLin.ReturnDensified(step).AsList.Get(0)
  for each pn in 0..(pntList.Count - 1)
   p = pntList.Get(pn)
    outf.WriteElt(p.GetX.AsString + ","+ p.GetY.AsString + "," + aZet.AsString)
  end
end
aThem.ClearSelection
outf.Close

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