Для того, чтобы посчитать площадь пересечения двух объектов,
используем оверлейные функции.
Когда эти два объекта физически на карте,
вроде все понятно.
А вот если один объект физически на карте есть,
а другой создан пока только в оперативной памяти для выполнения оверлейной функции, он не виден пока нет commit
Например:
SelectPoint := SelectPoint+1;
points[SelectPoint].X := xx1;
points[SelectPoint].Y := yy1;
MapTopLeft.X:=form_main.mvMap.MapLeft;
MapTopLeft.Y:=form_main.mvMap.MapTop;
form_main.mvMap.ConvertMetric(MapTopLeft.X, MapTopLeft.Y, PP_PICTURE, PP_PLANE);
mapViewUserObject(form_main.mvMap.MapHandle,form_main.mvMap.Handle, MapTopLeft, BlueLine, Data, integer(PP_MAP));
mapAppendPointPlane(ObjectSquare, points[SelectPoint].X, points[SelectPoint].Y, 0);
mapCommitObject(ObjectSquare); // Пока не сделали commit объект ObjectSquare в оверлейной функции MapCheckInside1.CheckSubjects не виден.
Формально да, так и есть.
Можно потом его удалить и сделать сортировку карты, например.
А если не нужно сохранять этот объект.
Может как-то в оперативной памяти выполнить оверлей?
используем оверлейные функции.
Когда эти два объекта физически на карте,
вроде все понятно.
А вот если один объект физически на карте есть,
а другой создан пока только в оперативной памяти для выполнения оверлейной функции, он не виден пока нет commit
Например:
SelectPoint := SelectPoint+1;
points[SelectPoint].X := xx1;
points[SelectPoint].Y := yy1;
MapTopLeft.X:=form_main.mvMap.MapLeft;
MapTopLeft.Y:=form_main.mvMap.MapTop;
form_main.mvMap.ConvertMetric(MapTopLeft.X, MapTopLeft.Y, PP_PICTURE, PP_PLANE);
mapViewUserObject(form_main.mvMap.MapHandle,form_main.mvMap.Handle, MapTopLeft, BlueLine, Data, integer(PP_MAP));
mapAppendPointPlane(ObjectSquare, points[SelectPoint].X, points[SelectPoint].Y, 0);
mapCommitObject(ObjectSquare); // Пока не сделали commit объект ObjectSquare в оверлейной функции MapCheckInside1.CheckSubjects не виден.
Формально да, так и есть.
Можно потом его удалить и сделать сортировку карты, например.
А если не нужно сохранять этот объект.
Может как-то в оперативной памяти выполнить оверлей?