В этом примере показано, как использовать 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)