Объединение сегментов линий с соответствующими конечными точками
[latMerged, lonMerged] = polymerge(lat, lon)
[latMerged, lonMerged] = polymerge(lat, lon, tol)
[latMerged, lonMerged] = polymerge(lat, lon, tol, outputFormat)
[latMerged, lonMerged] = polymerge(lat, lon) принимает многоточечную линию в широте-долготе с вершинами, хранящимися в массивах lat и lonи объединяет детали там, где пара конечных точек совпадает. Для этой цели конечной точкой может быть либо первая, либо последняя вершина в данной детали. При объединении пары деталей они объединяются в одну деталь и удаляется повторяющаяся общая вершина. Если две первые вершины совпадают или две последние вершины совпадают, то порядок вершин одной из частей будет обратным. Слияние применяется в любом месте, где конечные точки точно двух отдельных частей совпадают, так что неопределенное количество частей может быть связано вместе одним вызовом polymerge. Однако если три или более отдельных деталей имеют общую конечную точку, выбор деталей для объединения неоднозначен, и поэтому ни одна из соответствующих деталей не соединяется в этой общей точке.
Исходные данные lat и lon могут быть векторами столбцов или строк с разделенными NaN частями (и идентичными местоположениями NaN в каждом массиве), или они могут быть массивами ячеек с каждой частью в отдельной ячейке. Форма выходных массивов, latMerged и lonMerged, соответствует входным данным в этом отношении.
[latMerged, lonMerged] = polymerge(lat, lon, tol) объединяет сегменты линий, конечные точки которых разделены меньшим, чем круговой допуск, tol. tol имеет те же единицы измерения, что и вход многоугольника.
[latMerged, lonMerged] = polymerge(lat, lon, tol, outputFormat) позволяет запросить либо векторную форму, разделенную NaN, для вывода (set outputFormat кому 'vector') или форму массива ячеек (set outputFormat кому 'cell').
lat = [1 2 3 NaN 6 7 8 9 NaN 6 5 4 3 NaN 12 13 14 ...
NaN 9 10 11 12]';
lon = lat;
[lat2, lon2] = polymerge(lat, lon);
[lat2, lon2]
ans =
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
NaN NaN