Из полигона в точки
-
- Участник
- Сообщения: 78
- Зарегистрирован: 05 апр 2014, 17:13
- Репутация: 5
Из полигона в точки
Добрый день.
Подскажите, пожалуйста, как с помощью MB из таблицы с полигонами сделать таблицу с точками (узлами границ), чтобы также наследовались атрибутивные данные полигонов?
Подскажите, пожалуйста, как с помощью MB из таблицы с полигонами сделать таблицу с точками (узлами границ), чтобы также наследовались атрибутивные данные полигонов?
-
- Участник
- Сообщения: 65
- Зарегистрирован: 02 сен 2010, 22:44
- Репутация: 4
- Откуда: Нижний Новгород
Re: Из полигона в точки
update ?????? set obj = Centroid(obj) где ?????? название таблицы только на латинице, но это если центроиды нужны
- Игорь Белов
- Гуру
- Сообщения: 2231
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1503
- Откуда: Казань
Re: Из полигона в точки
Очень просто - написать программу
The purpose of computing is insight, not numbers
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 22 июн 2018, 03:04
- Репутация: 1
- Откуда: г. Барнаул
- Контактная информация:
Re: Из полигона в точки
Создавать точки с координатами узлов как то так. На работоспособность код не проверял.
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
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
-
- Участник
- Сообщения: 78
- Зарегистрирован: 05 апр 2014, 17:13
- Репутация: 5
Re: Из полигона в точки
Спасибо, буду пробовать!
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 07 дек 2018, 13:20
- Репутация: 0
- Откуда: Астана
Re: Из полигона в точки
Можно подробнее описать, процесс
У меня такая же проблема, нужно из большого количества полигонов выдернуть точки координат узлов
У меня такая же проблема, нужно из большого количества полигонов выдернуть точки координат узлов
- MI user
- Участник
- Сообщения: 63
- Зарегистрирован: 14 янв 2013, 17:08
- Репутация: 33
- Откуда: Оренбург
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 42 гостя