На пользовательской карте, созданной к карте region.sit (базовый масштаб 400000) создаю по точкам из массива pointArray графический объект - свою ломаную линию:
IMGLINE parm;
parm.Thick = PIX2MKM(2);
parm.Color = RGB(255,0,0);
if (mapRegisterDrawObject(info, NLayer, LOCAL_LINE)!=0) {
mapAppendDraw(info, IMG_LINE, (const char *)&parm);
for ( int i = 0; i < PointCount; i++ ) mapAppendPointPlane(info, pointArray[i].x, pointArray[i].y);
long Number=mapCommitWithPlace(info);
}
Как сделать так, чтобы визуально толщина линии не менялась при изменении масштаба наипростейшим способом?Пока что пытаюсь подправлять графические параметры при изменении масштаба (масштаб меняется по нажатию кнопки на экранной форме)
с учетом величины растяжения карты относительно базового масшаба -
info=mapReadObjectByNumber(mapHandle, hSite, info, 1, Number);
if (mapDrawCount(info)==0) return;
if (mapDrawImage(info,1)==128) {
const char * parm=mapDrawParameters(info,1);
IMGLINE *parm1 =(IMGLINE*)parm;
Parm1->Thick=PIX2MKM(2.0/mapGetDrawScale(mapHandle));
mapDeleteDraw(info,1);
mapAppendDraw(info, IMG_LINE, (const char *)parm1);
Number=mapCommitWithPlace(info);
}
Это хлопотно. Можно ли как либо отметить, чтобы этот графический объект сохранял толщину. И как задать первоначальную толщину (не на глаз) , чтобы линия также была видна при переходе на карту мира.