Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
VAD
Зарегистрирован: 01.03.2009 Сообщения: 6 Откуда: Питер
|
Добавлено: Вс Апр 05, 2009 2:44 am Заголовок сообщения: Область по углам окна карты |
|
|
Суть такова имеется полоса, состоящая из множества снимков. Снимки обводятся областями (прямоугольниками). То есть каждая область по контуру повторяет каждый снимок. Полоса изгибается, соответственно меняется положение снимков (соответственно и областей) на экране. Нужно вписать снимок (область) в окно карты. Сначала один, потом второй, третий и т.д. Соответственно надо, чтобы окно карты подстраивалось под конкретную область
У меня мысли такие. Есть функция ObjectGeography(), которая определяет минимальные и максимальные координаты прямоугольного покрытия выбранной области
x_min = ObjectGeography(objcopy, OBJ_GEO_MINX)
y_min = ObjectGeography(objcopy, OBJ_GEO_MINY)
x_max = ObjectGeography(objcopy, OBJ_GEO_MAXX)
y_max = ObjectGeography(objcopy, OBJ_GEO_MAXY)
И полученные значения, я хотел использовать вместо значений функции MapperInfo() которая определяет минимальную и максимальную координату карты, показанного в окне
min_x = MapperInfo(map_win_id,MAPPER_INFO_MINX)
min_y = MapperInfo(map_win_id,MAPPER_INFO_MINY)
max_x = MapperInfo(map_win_id,MAPPER_INFO_MAXX)
max_y = MapperInfo(map_win_id,MAPPER_INFO_MAXY)
Из этого ничего не вышло.... Надеюсь, что объяснил подробно. Спасибо)) |
|
Вернуться к началу |
|
|
Vovik
Зарегистрирован: 04.05.2008 Сообщения: 57
|
Добавлено: Пн Апр 06, 2009 9:26 am Заголовок сообщения: Re: Область по углам окна карты |
|
|
Я, как понял, снимки это растры которые, естественно зарегистрированны, которые объведены регионами. Координаты таблицы (читай растра) можно добыть так
x1 = TableInfo( TabName, TAB_INFO_MINX )
y1 = TableInfo( TabName, TAB_INFO_MINY )
x2 = TableInfo( TabName, TAB_INFO_MAXX )
y2 = TableInfo( TabName, TAB_INFO_MAXY )
далее используй Set map ....
Удачи! |
|
Вернуться к началу |
|
|
Vovik
Зарегистрирован: 04.05.2008 Сообщения: 57
|
Добавлено: Пн Апр 06, 2009 9:27 am Заголовок сообщения: Re: Область по углам окна карты |
|
|
Я, как понял, снимки это растры которые, естественно зарегистрированны, которые объведены регионами. Координаты таблицы (читай растра) можно добыть так
x1 = TableInfo( TabName, TAB_INFO_MINX )
y1 = TableInfo( TabName, TAB_INFO_MINY )
x2 = TableInfo( TabName, TAB_INFO_MAXX )
y2 = TableInfo( TabName, TAB_INFO_MAXY )
далее используй Set map ....
Удачи! |
|
Вернуться к началу |
|
|
Vovik
Зарегистрирован: 04.05.2008 Сообщения: 57
|
Добавлено: Пн Апр 06, 2009 9:27 am Заголовок сообщения: |
|
|
Я, как понял, снимки это растры которые, естественно зарегистрированны, которые объведены регионами. Координаты таблицы (читай растра) можно добыть так
x1 = TableInfo( TabName, TAB_INFO_MINX )
y1 = TableInfo( TabName, TAB_INFO_MINY )
x2 = TableInfo( TabName, TAB_INFO_MAXX )
y2 = TableInfo( TabName, TAB_INFO_MAXY )
далее используй Set map ....
Удачи! |
|
Вернуться к началу |
|
|
spawner
Зарегистрирован: 01.04.2009 Сообщения: 77
|
Добавлено: Пн Апр 06, 2009 2:06 pm Заголовок сообщения: mapinfo |
|
|
А mapinfo не умеет устанавливать окно карты по двум углам.
Нужно читать описание оператора Set Map.
Мне нужно было сделать чтобы выбранный объект показывался в центре окна карты, сделал коряво, не каждый объект виден полностью, но заказчика устроило, мб поможет:
MinX=ObjectGeography(O,OBJ_GEO_MINX)
MinY=ObjectGeography(O,OBJ_GEO_MINY)
MaxX=ObjectGeography(O,OBJ_GEO_MAXX)
MaxY=ObjectGeography(O,OBJ_GEO_MAXY)
'размеры объекта по Х и У
dX = MaxX-MinX
dY = MaxY-MinY
'коэффициент, показывает узкое окно или широкое
rx = WindowInfo(WinId,WIN_INFO_WIDTH)/WindowInfo(WinId,WIN_INFO_HEIGHT)
if rx<1 then
rx = 1
end if
if dX>dY then
W = dx*rx*1.2
else
W = dy*rx*1.2
end if
'настраиваем масштаб и центр окна карты
Set Map
Window WinId
Center ((MinX+MaxX)/2,(MinY+MaxY)/2)'координаты центра
Zoom W' ширина фрагмента которое будет показано в окне карты |
|
Вернуться к началу |
|
|
|