CreateCircle
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 31 май 2012, 12:36
- Репутация: 0
CreateCircle
Здравствуйте. Помогите пожалуйста разобраться. Задача создать окружность с возможностью изменять радиус, изменяя значение в таблице.
С помощью вот такого кода научился создавать окружность в нужном месте и нужного радиуса:
Open Table "rad"
Insert Into rad (obj)
Values ( CreateCircle(-72, 42, 10000) )
Но я не могу найти как добавить в таблицу значение радиуса для последующего интерактивного редактирования. Буду очень благодарен за подсказку
С помощью вот такого кода научился создавать окружность в нужном месте и нужного радиуса:
Open Table "rad"
Insert Into rad (obj)
Values ( CreateCircle(-72, 42, 10000) )
Но я не могу найти как добавить в таблицу значение радиуса для последующего интерактивного редактирования. Буду очень благодарен за подсказку
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: CreateCircle
Код: Выделить всё
Insert Into rad (obj, field_name) Values ( CreateCircle(-72, 42, 10000), 10000 )
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 31 май 2012, 12:36
- Репутация: 0
Re: CreateCircle
dab, спасибо Вам большое, работает!
Я поменял теперь радиус в таблице, как обновить карту чтобы новый радиус применился?
Я поменял теперь радиус в таблице, как обновить карту чтобы новый радиус применился?
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: CreateCircle
Например так
Код: Выделить всё
Update rad Set obj = CreateCircle(CentroidX(obj), CentroidY(obj), field_name)
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 31 май 2012, 12:36
- Репутация: 0
Re: CreateCircle
хм. не обновляет. ошибок не выдает но и ничего не меняется. в геоинформации прежнее значение
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: CreateCircle
Смотрите предложение CoordSys относительно карты и таблицы rad.Krom писал(а):хм. не обновляет. ошибок не выдает но и ничего не меняется. в геоинформации прежнее значение
Я прежде чем писать код на форуме всегда пробую у себя.
Моя таблица rad в Долготе-Широте. Всё работает, радиус окружностей меняется.
Попозже ещё в метрах проверю.
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 31 май 2012, 12:36
- Репутация: 0
Re: CreateCircle
Я пробовал в план-схеме, а теперь сделал заново в долготе/широте и все работает. Спасибо Вам огромное, очень выручили.
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: CreateCircle
Работать будет и с план-схемой, только предварительно нужно выполнитьKrom писал(а):Я пробовал в план-схеме, а теперь сделал заново в долготе/широте и все работает. Спасибо Вам огромное, очень выручили.
Код: Выделить всё
Set Map XY Units "m" CoordSys NonEarth Units "m"
-
- Активный участник
- Сообщения: 120
- Зарегистрирован: 14 апр 2011, 13:24
- Репутация: 5
- Откуда: Екатеринбург
Re: CreateCircle
не-е, это не пройдет, (точнее, если пройдет, то случайно). требуется так:dab писал(а): Работать будет и с план-схемой, только предварительно нужно выполнитьКод: Выделить всё
Set Map XY Units "m" CoordSys NonEarth Units "m"
Код: Выделить всё
set coordsys table rad
set distance units "m"
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: CreateCircle
+100500SergS писал(а):[это дает возможность не выяснять специально как выглядит строка проекции для данной таблицы, а просто использовать заданную в ней же. кроме того, для createcircle() требуется задать единицы измерения расстояний, в примере - метры, строка установки СК на этот параметр не влияет. а что там по умолчанию в MI установлено - уже забыл, т.к. всегда принудительно ставлю по необходимости.Код: Выделить всё
set coordsys table rad set distance units "m"

-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 31 май 2012, 12:36
- Репутация: 0
Re: CreateCircle
А можно ли создавать окружность не в конкретной координате а в центроиде другого объекта?
Я привык что слой является представлением таблицы. Одна таблица - один слой. А возможно ли что есть два слоя и они описываются одной таблицей? Мне нужно чтобы в одном слое были допустим квадраты а в другом - круги посаженные по центроидам квадратов...
Я привык что слой является представлением таблицы. Одна таблица - один слой. А возможно ли что есть два слоя и они описываются одной таблицей? Мне нужно чтобы в одном слое были допустим квадраты а в другом - круги посаженные по центроидам квадратов...
- Игорь Белов
- Гуру
- Сообщения: 2240
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1513
- Откуда: Казань
Re: CreateCircle
Вычислите координаты центроидов квадратов как CentroidX(obj), CentroidY(obj) и воспользуйтесь ими.
The purpose of computing is insight, not numbers
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 31 май 2012, 12:36
- Репутация: 0
Re: CreateCircle
Вы имеете ввиду вычислить координаты и вбить их вручную при создании окружности? Мне надо чтобы положение кругов было привязано к положению квадратов. Подвинули квадрат - подвинулись круги. Или я не так Вас понял может быть...ErnieBoyd писал(а):Вычислите координаты центроидов квадратов как CentroidX(obj), CentroidY(obj) и воспользуйтесь ими.
Я думал может иметь место конструкция вида
Insert Into rad (obj, field_name) Values ( CreateCircle(-72, 42, 10000), 10000 )
но вместо -74, 42 прописывается что-то вроде ссылки на центроид квадрата...
- Игорь Белов
- Гуру
- Сообщения: 2240
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1513
- Откуда: Казань
Re: CreateCircle
Как-то так:
Код: Выделить всё
Dim square_table, circle_table As String
Dim square_obj As Alias
...
square_obj = square_table + ".Obj"
...
Update circle_table
Set Obj = CreateCircle(CentroidX(square_obj), CentroidY(square_obj), radius)
Where RowID = TableInfo(circle_table, TAB_INFO_NROWS)
The purpose of computing is insight, not numbers
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 31 май 2012, 12:36
- Репутация: 0
Re: CreateCircle
ErnieBoyd, объясните пожалуйста поподробнее.
То есть у меня одна таблица должна быть circle_table и колонки в ней square_table и circle_table?
Для меня это тема честно говоря нова поэтому Ваш код понятен только местами
То есть у меня одна таблица должна быть circle_table и колонки в ней square_table и circle_table?
Для меня это тема честно говоря нова поэтому Ваш код понятен только местами
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость