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

В этом примере показано, как использовать encodem функция с точками seed, найденными с помощью 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, meRefVec] = vec2mtx(meLat, meLon, 60);

Настройте фигуру карты и отобразите бинарную сетку, которую вы только создали.

figure
axesm eqdcyl
geoshow(meLat, meLon, 'Color', 'black');

Используйте getseeds функционируйте, чтобы выбрать пять точек seed, один в каждых из основ Индианы, Мичигана, Огайо, Кентукки и Иллинойса. getseeds функционируйте изменяет курсор в крест нитей. Вы выбираете точки seed путем расположения курсора в государственной границе и щелчка мышью. getseeds функция возвращает управление в командную строку после того, как вы выберете пять мест в окне рисунка.

[row,col,val] = getseeds(meGrid, meRefVec, 5, [3 4 5 6 7]);

Заполните каждое состояние уникальным значением, произведя новую сетку, с помощью encodem функция.

meGrid5 = encodem(meGrid, [row col val], 1);

Отобразите meGrid5 видеть результат.

clma
meshm(meGrid5, meRefVec)