Здравствуйте. Поставлена задача, по условиям селекта( созданного для основной карты map, только линейные объекты ) скопировать все объекты по метрике на отдельный слой. Сейчас это реализовано так:
Код
while( mapSeekSelectObject(mapview->h_gd, hObj, select, flag) )
{
flag = WO_NEXT;
long local = mapObjectLocal(hObj);
HOBJ hObjCopy = mapCreateSiteObject( mapview->h_gd, hSite );
mapRegisterObject( hObjCopy, 5562, local);
int count = mapPointCount( hObj, 0 );
for( int i = 1; i <= count; i++ ) mapAppendPointPlane(hObjCopy, mapXPlane( hObj, i ), mapYPlane( hObj, i ));
mapFreeObject(hObjCopy);
}
Существует ли более удобный способ копирования объекта по метрике, чем перебор всех точек?
Для копирования объекта и метрики объекта в mapapi.h существуют функции mapReadCopyObject и mapReadCopyObjectData. Пример использования функций приводится в пункте 3.6.28 Руководства программиста.