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

Этот пример показывает, как использовать функцию 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)