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