axMapOverlay.SetObjectCross |
Установить обрабатываемый объект и метод обработки
function SetObjectCross(ObjInNumSubject : integer; precision : double; flag3d : integer; method : integer; location : integer) : integer;
Описание: Параметры метода: ObjInNumSubject - номер обрабатываемого контура: 1 - обработать все контура; 0 - основной контур объекта; от 1 и более - подобъект объекта. precision - точность согласования точек объекта с точками шаблона (DOUBLENULL и выше). Выполняется обновление точек объекта. Используется для сохранения контуров близлежащих объектов. Рекомендуется precision = 0.001 (метров на местности). flag3d - флаг формирования высоты в точках трехмерной метрики, соответствующих участкам контуров шаблона: FLAG3D_NONE (0) - результат не содержит трехмерной метрики; FLAG3D_TEMPLET (2) - третья координата выбирается из контура шаблона; FLAG3D_MATRIX (8) - третья координата выбирается из карты (по наиболее точной открытой матрице высот); FLAG3D_LINE (32) - третья координата вычисляется по крайним точкам участка, не содержащего высоты (методом линейной интерполяции); FLAG3D_ALL (42) - совместное использование всех флагов FLAG3D_TEMPLET|FLAG3D_MATRIX|FLAG3D_LINE Допускается совместное использование флагов: FLAG3D_TEMPLET|FLAG3D_MATRIX, FLAG3D_MATRIX|FLAG3D_LINE, FLAG3D_TEMPLET|FLAG3D_LINE. При совместном использовании используется приоритет выполнения: FLAG3D_TEMPLET -> FLAG3D_MATRIX -> FLAG3D_LINE. Если обрабатываемый объект не содержит трехмерную метрику, то допустим только метод FLAG3D_NONE (0). method - флаг типа результирующих контуров (флаги метода обработки): METHOD_LINE 0 - замкнутые и незамкнутые контура линейных объектов; METHOD_SQUARE 1 - замкнутые контура (части object) площадных объектов; METHOD_FAST 16 - быстрый способ обработки - используется только для объектов, которые не содержат самопересечений !!! Если контур шаблона незамкнут, то допустим только метод METHOD_LINE. Допускается совместное использование флагов: METHOD_LINE|METHOD_FAST, METHOD_SQUARE|METHOD_FAST location - флаги размещения результирующих контуров: ANYOBJECT или 0 - поиск всех контуров; ANYOBJECT2 - поиск всех контуров, включая отрезки контура равные отрезкам шаблона; OBJECTINSIDE - поиск контуров внутри шаблона; OBJECTINSIDE2 - поиск контуров внутри шаблона, включая отрезки контура равные отрезкам шаблона; OBJECTOUTSIDE - поиск контуров вне шаблона; OBJECTOUTSIDE2 - поиск контуров вне шаблона, включая отрезки контура равные отрезкам шаблона. Допускается совместное использование флагов: OBJECTINSIDE|OBJECTOUTSIDE, OBJECTINSIDE2|OBJECTOUTSIDE, OBJECTINSIDE|OBJECTOUTSIDE2, OBJECTINSIDE2|OBJECTOUTSIDE2. Если объект точечный, векторный, подпись или шаблон, то параметры precision, method, location игнорируются. Положение объекта определяется по первой точке первого подобъекта, а метод SetObjectCross возвращает: 1 - объект внутри шаблона (в данном случае GetNextObject не вызывать); 2 - объект вне шаблона (в данном случае GetNextObject не вызывать); Если контур шаблона НЕЗАМКНУТ, то SetObjectCross возвращает: 1 - все контура объекта совпадают с шаблоном (лежат на шаблоне) (в данном случае GetNextObject не вызывать); 2 - все контура объекта вне шаблона (в данном случае GetNextObject не вызывать); 3 - один или несколько контуров объекта пересекаются с шаблоном (при возврате 3 вызывать GetNextObject в цикле). Если контур шаблона ЗАМКНУТ и method == 0, то SetObjectCross возвращает: 1 - все контура объекта внутри шаблона, либо совпадают (в данном случае GetNextObject не вызывать); 2 - все контура объекта вне шаблона (в данном случае GetNextObject не вызывать); 3 - один или несколько контуров объекта пересекаются с шаблоном, либо обнаружены внутренние и внешние контура (относительно шаблона) (при возврате 3 вызывать GetNextObject в цикле). Если контур шаблона ЗАМКНУТ и method == 1, то SetObjectCross возвращает: 1 - все контура объекта внутри шаблона, либо совпадают; 2 - все контура объекта вне шаблона; 3 - один или несколько контуров объекта пересекаются с шаблоном, либо обнаружены внутренние и внешние контура (относительно шаблона). 4 - контур шаблона внутри контура объекта (при возврате 3 и 4 вызывать GetNextObject в цикле) При ошибке возвращает 0. |