Привожу небольшой пример кода нанесения линии с карты Ногинск на созданную карту с исключаемыми объектами.
В данном примере, точки 1-2 заносятся в объект, в 1-й подобъект заносят точки 2-3-4, во 2-ой 4-5.
В итоге получается линия, состоящая из нескольких отрезков-подобъектов, с исключением 2-ой и 4-ой точек.
Код |
---|
HMAP mapHandle = ui.DMapView1->GetMapHandle();
HSITE siteHandle = mapGetSiteIdent(mapHandle, 1);
HOBJ createdObjectHandle = mapCreateSiteObject(mapHandle, siteHandle);
mapRegisterObject(createdObjectHandle, 725023210, LOCAL_LINE);
HOBJ objectHandleToCopyPoints = mapCreateObject(mapHandle);
mapReadObjectByKey(mapHandle, mapHandle, objectHandleToCopyPoints, 1, 83195);
long currentSubject = 0;
for (int currentPoint = 1; currentPoint <= mapPointCount(objectHandleToCopyPoints, 0); currentPoint++)
{
DOUBLEPOINT objectPoint;
mapGetPlanePoint(objectHandleToCopyPoints, &objectPoint, currentPoint, 0);
mapAppendPointPlane(createdObjectHandle, objectPoint.x, objectPoint.y, currentSubject);
if (currentPoint%2 == 0)
{
currentSubject = mapCreateSubject(createdObjectHandle);
mapAppendPointPlane(createdObjectHandle, objectPoint.x, objectPoint.y, currentSubject);
}
}
mapCommitObject(createdObjectHandle);
mapFreeObject(objectHandleToCopyPoints);
mapDeleteObject(objectHandleToCopyPoints);
mapFreeObject(createdObjectHandle);
mapDeleteObject(createdObjectHandle); |