Страница 1 из 1
Из полигона в точки
Добавлено: 03 окт 2018, 10:03
Dartix
Добрый день.
Подскажите, пожалуйста, как с помощью MB из таблицы с полигонами сделать таблицу с точками (узлами границ), чтобы также наследовались атрибутивные данные полигонов?
Re: Из полигона в точки
Добавлено: 03 окт 2018, 10:33
1985student
update ?????? set obj = Centroid(obj) где ?????? название таблицы только на латинице, но это если центроиды нужны
Re: Из полигона в точки
Добавлено: 03 окт 2018, 14:19
Игорь Белов
Dartix писал(а): ↑03 окт 2018, 10:03
как с помощью MB из таблицы с полигонами сделать таблицу с точками (узлами границ), чтобы также наследовались атрибутивные данные полигонов?
Очень просто - написать программу
Re: Из полигона в точки
Добавлено: 03 окт 2018, 16:33
dim2906
Создавать точки с координатами узлов как то так. На работоспособность код не проверял.
Declare Sub Main
Declare Sub Insert_Object_point(ByVal objPoligon as Object)
Dim pathTable, nmTable, poligonTable as String
Sub Main()
poligonTable ="таблица_полигонов"
pathTable ="D:\таблица_точек.tab"
nmTable = PathToTableName$(pathTable )
Set CoordSys Table poligonTable
Create Table nmTable Using poligonTable File FullNameTable
Create Map For nmTable CoordSys Table poligonTable
Dim objPoligon as Object
Dim indexTabl As Integer
indexTabl=1
Select * from poligonTable into poligonTableSelect Noselect
Fetch First From poligonTableSelect
Do While Not EOT(poligonTableSelect )
if poligonTableSelect.obj then
objPoligon = poligonTableSelect.obj
Insert_Object_point( objPoligon ) )
' Update nmTable
End If
indexTabl=indexTabl+1
Fetch Next From poligonTableSelect
Loop
Close Table poligonTableSelect
End Sub
Sub Insert_Object_point(ByVal objPoligon as Object)
Dim countNode, node_num , indexPolugon as Integer
Dim NPOLYGONS as Integer 'количество полигонов
Dim x, y as Float
NPOLYGONS=ObjectInfo(objPoligon, OBJ_INFO_NPOLYGONS)
For indexPolugon=1 To NPOLYGONS
countNode = ObjectInfo(objPoligon , OBJ_INFO_NPOLYGONS+indexPolugon) 'число узлов N-ого полигона
For node_num=1 to countNode
x=ObjectNodeX( objPoligon , indexPolugon, node_num)
y=ObjectNodeY( objPoligon , indexPolugon, node_num)
Insert Into nmTable (Obj) Values ( CreatePoint(x, y) )
Next
Next
End Sub
Re: Из полигона в точки
Добавлено: 04 окт 2018, 14:38
Dartix
Спасибо, буду пробовать!
Re: Из полигона в точки
Добавлено: 07 дек 2018, 13:48
gudvil
Можно подробнее описать, процесс
У меня такая же проблема, нужно из большого количества полигонов выдернуть точки координат узлов
Re: Из полигона в точки
Добавлено: 07 дек 2018, 15:45
MI user
gudvil писал(а): ↑07 дек 2018, 13:48
нужно из большого количества полигонов выдернуть точки координат узлов
Для этой задачи проще использовать
утилиту.