 |
www.integro.ru ЦСИ ИНТЕГРО
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
AleksSmr

Зарегистрирован: 15.03.2006 Сообщения: 4
|
Добавлено: Вт 12 Дек 2006 12:10 Заголовок сообщения: Определение координат объекта |
|
|
Есть объект "Здание" у него есть 2 стиля: "Строение" и "Подпись"
Рисунок у меня на аватаре - картинке слева от сообщения под ником. (влом было на веб кидать )
Где квадрат это стиль "Строение", а полоска это стиль "Подпись". Полоса задаёт направление подписи.
У стиля "Строение" стоит галка "Определять геометрию объекта"
соответственно у стиля "Подпись" этот пункт отключен.
Когда я программно пытаюсь найти координату середины объекта:
Код: | X = (IMapObject.X1 + IMapObject.X2) / 2;
Y = (IMapObject.Y1 + IMapObject.Y2) / 2; |
Он считает правый край линии как часть объекта, и соответственно реальная координата центра строения неслабо смещается...
Подскажите пожалуйста, как можно решить эту проблему?
Я подразумеваю что через Shape, но чёт я там не понял как получить координаты хотяб части фигуры.
Заранее спасибо. |
|
Вернуться к началу |
|
 |
Михаил Власов

Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
|
Добавлено: Вт 12 Дек 2006 13:58 Заголовок сообщения: |
|
|
Для вычисления габаритов объекта с учетом только форм, определяющих геометрию, можно использовать приведенный ниже пример:
Код: | function Min(a, b)
if a < b then
Min = a
else
Min = b
end if
end function
function Max(a, b)
if a > b then
Max = a
else
Max = b
end if
end function
function GetBoundsOfDefinedGeometryShapes(mapObject, boundsX1, boundsX2, boundsY1, boundsY2)
dim x1, x2, y1, y2, shape, boundsAssigned
boundsAssigned = False
for each shape in mapObject.Shapes
if shape.DefineGeometry then
if shape.Contour.sGetBounds(x1, y1, x2, y2) then
if not boundsAssigned then
boundsX1 = x1
boundsX2 = x2
boundsY1 = y1
boundsY2 = y2
boundsAssigned = True
else
boundsX1 = Min(boundsX1, x1)
boundsX2 = Max(boundsX2, x2)
boundsY1 = Min(boundsY1, y1)
boundsY2 = Max(boundsY2, y2)
end if
end if
end if
next
GetBoundsOfDefinedGeometryShapes = boundsAssigned
end sub
|
_________________ С уважением, Михаил Власов. |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
|
|