В этом примере показано, как использовать encodem с начальными точками, найденными с помощью getseeds функция для заполнения нескольких многоугольников после того, как они будут привязаны к сетке. Пример извлекает данные для Индианы и окружающих ее штатов, а затем удаляет нежелательные области этих полигонов с помощью maptrimp .
Извлеките данные для Индианы и ее соседей, передав их имена в массиве ячеек shaperead.
pcs = {'Indiana', 'Michigan', 'Ohio', 'Kentucky', 'Illinois'};
centralUS = shaperead('usastatelo.shp',...
'UseGeoCoords', true,...
'Selector',{@(name)any(strcmpi(name,pcs),2), 'Name'});
meLat = [centralUS.Lat];
meLon = [centralUS.Lon];Растрируйте обрезанные многоугольники с разрешением 1 дуга (60 ячеек на градус), также создавая растровый опорный объект.
[meGrid,meR] = vec2mtx(meLat,meLon,60);
Настройте рисунок карты и отобразите только что созданную двоичную сетку.
figure axesm eqdcyl geoshow(meLat,meLon,'Color','black');

Используйте getseeds функция для выбора пяти начальных точек, по одной в каждом из контуров Индианы, Мичигана, Огайо, Кентукки и Иллинойса. getseeds функция изменяет курсор на перекрестие. Начальные точки выбираются путем установки курсора в пределах границы состояния и щелчка мыши. getseeds функция возвращает элемент управления в командную строку после выбора пяти расположений в окне рисунка.
[row,col,val] = getseeds(meGrid,meR,5,[3 4 5 6 7]);
Заполните каждое состояние уникальным значением, создав новую сетку, используя encodem функция.
meGrid5 = encodem(meGrid,[row col val],1);
Показ meGrid5 чтобы увидеть результат.
clma meshm(meGrid5,meR)
