TMapDataView.OnMapBeforePaint

 

TMapDataView

Top

 

Вызывается перед перерисовкой карты.

 

TMapPaintEvent = procedure (Sender :  TObject;  aCanvas :  TCanvas; MapPaintRect : TRect) of object;

property OnMapPaint: TMapPaintEvent;

 

Описание:

Событие генерируется перед перерисовкой участка карты.

 

Как правило, обработка данного события используется с целью удаления пользовательской информации, наложенной поверх картографического изображения электронной карты, чтобы после перерисовки вновь ее нанести на канву карты и при этом не осталось не стертых участков пользовательских объектов.

 

Канва компонента TMapDataView доступна только в обработчике этого события.

 

Параметры события:

 

Sender      - объект типа TMapDataView.

 

MapPaintRect  - содержит координаты области прорисовки в пикселях в системе координат карты. Имеет единицы измерения того устройства, для которого выполняется прорисовка карты.

 

aCanvas     - указатель на канву компонента Sender. Внимание! Объект aCanvas в момент вызова события имеет нестандартное начало координат: оно смещено относительно начала окна на –MapLeft, -MapTop. Например, для того чтобы нарисовать линию с оконными координатами 0,0; 10,20 необходимо реально послать координаты MapLeft, MapTop; MapLeft + 10, MapTop + 20.  Другой пример: необходимо нарисовать квадрат с координатами на местности X1, Y1, X2, Y2 в метрах. Для пересчета координат на форме разместим компонент Point:TcompMapPoint.

         Point.PlaceInp :=  PP_PLANE;

         Point.PlaceOut :=  PP_PICTURE;

         Point.SetPoint(X1, Y1);

         Point.GetPoint(Rect1.Left,  Rect1.Top);

         Point.SetPoint(X2, Y2);

         Point.GetPoint(Rect1.Right, Rect1.Bottom);

                      aCanvas.FrameRect(Rect1);