Растрирование многоугольников в интерактивном режиме

В этом примере показано, как использовать 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 функция для выбора пяти начальных точек, по одной в каждом из контуров Индианы, Мичигана, Огайо, Кентукки и Иллинойса. The getseeds функция изменяет курсор на перекрестие. Вы выбираете seed точки, устанавливая курсор в пределах контура состояния и щелкая мышью. The 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)