Тур Бостон с приложением Map Viewer

Приложение Map Viewer является интерактивным инструментом для просмотра данных карты. С его помощью можно:

  • Собрать слои вектора и растровых геоданных и отобразить их в 2-D

  • Импорт, изменение порядка, символизация, скрытие и удаление слоев данных

  • Идентифицируйте местоположения координат

  • Перечислите атрибуты данных

  • Отображение выбранных атрибутов данных в качестве всплывающих подсказок (указателей, идентифицирующих значения атрибутов, таких как имена мест или номера маршрутов)

Следующий пример иллюстрирует эти возможности.

Откройте приложение Map Viewer

  1. Откройте приложение Map Viewer на вкладке Apps, в разделе Image Processing and Computer Vision, нажмите Map Viewer . Вы также можете запустить Map Viewer с помощью mapview команда. Откроется окно Map Viewer с пустым полотном. (Данные отсутствуют.)

    Обратите внимание, что Map Viewer разработан, в основном, для работы с наборами данных, которые относятся к проективной системе координат карты (в отличие от географической системы, системы широта-долгота), поэтому координатные оси называются X и Y.

  2. Импорт данных карты. В окне Map Viewer выберите меню File и затем выберите Import From File. Перейдите к matlabroot/ examples/map/data папка, где matlabroot представляет ваш MATLAB® и откройте файл GeoTIFF boston.tif.

    Файл откроется в окне Map Viewer. Изображение является видимым красным, зеленым и синим композитом из географически IKONOS-2 панхроматического / мультиспектрального продукта, созданного GeoEye™. Copyright © GeoEye, все права защищены. Для получения дополнительной информации об изображении см. текстовые файлы boston.txt и boston_metadata.txt. Чтобы открыть boston.txt, введите в командной строке следующее:

    open 'boston.txt'
  3. Установите шкалу карты в окне Map Viewer. Для этого необходимо сначала задать модули измерения расстояния карты. Щелкните меню Map units в нижнем центре и выберите US Survey Feet.

  4. Установите шкалу карты. Тип 1:25000 в поле шкала, которое находится над меню Map units, и нажмите Enter.Теперь Map Viewer выглядит следующим образом.

  5. Получите координаты карты для местоположения на карте, в интерактивном режиме. Наведите курсор на местоположение на карте. Пример помещает курсор на мост, который переходит пруд в Бостон-Гарден. Координаты карты для этого местоположения показаны внизу слева следующим 772,423.18 футы на восток (X), 2,954,372.40 ног севернее (Y), в координатах плоскости штата Массачусеттс.

  6. Импортируйте слой векторных данных. В данном примере импортируйте файл shapefile линии, который содержит данные о улицах и шоссе в центральной части Бостона.

    boston_roads = shaperead('boston_roads.shp');
    

    The shaperead функция возвращает данные как географическую структуру данных.

  7. Преобразуйте X и Y координатные поля boston_roads.shp от метров до футов исследования США. Как часто бывает при наложении геоданных, система координат, используемая boston_roads.shp (в единицах измерения) не полностью согласуется с тем, что для спутникового изображения, boston.tif (в единицах футов). Если бы вы проигнорировали это, два набора данных были бы вне регистрации на большое расстояние.

    surveyFeetPerMeter = unitsratio('survey feet','meter');
    for k = 1:numel(boston_roads)
        boston_roads(k).X = surveyFeetPerMeter * boston_roads(k).X;
        boston_roads(k).Y = surveyFeetPerMeter * boston_roads(k).Y;
    end 
    
    unitsratio функция вычисляет коэффициенты преобразования между различными модулями измерения длины.

  8. В меню File Map Viewer выберите Import From Workspace > Vector Data > Geographic Data Structure.

    В диалоговом окне «Импорт векторных данных» выберите переменную boston_roads как данные для импорта из рабочей области и нажмите кнопку OK.

    Вы можете очистить рабочую область сейчас, если хотите, потому что все данные, которые нужны Map Viewer, теперь загружены в него.

  9. После завершения импорта слоя дорог программа Map Viewer выбирает случайный цвет и отображает все формы с этим цветом как сплошные линии. Вид выглядит следующим образом.

    Будучи случайным, цвет, который вы видите для дорожного слоя, может различаться.

  10. Исследуйте атрибуты векторного слоя. Во-первых, сделать вектор слой active layer с помощью меню Активный слой в правом нижнем углу. Выберите boston_roads. Можно задать любой слой, который будет active layer; он не должен быть самым верхним слоем. По умолчанию первый импортированный слой является активным. Изменение активного слоя не оказывает визуального эффекта на карту. Это позволяет запрашивать атрибуты выбранного слоя. Для примера, когда вы делаете вектору слой активным слоем, кнопка инструмента «Информация» рядом с правым концом панели инструментов становится включенной. Выберите инструмент «Информация», курсор изменится на форму перекрестия. Щелкните любое место на карте, чтобы просмотреть атрибуты выбранного объекта.

    Выбранная дорога - Массачусетс-авеню (Route 2A). Как показано на рисунке выше, boston_roads векторы имеют шесть атрибутов, включая неявное INDEX атрибут, добавленный средством Map Viewer. Используйте этот инструмент для исследования других дорог. Закройте открытые окна Info, установив флажки закрытия.

  11. Используйте всплывающую подсказку, чтобы аннотировать карту с другими значениями атрибутов. В меню « Слои» выберите boston_roads > Set Label Attribute.

    Из списка в диалоговом окне «Имена атрибутов» выберите CLASS и нажмите OK.

  12. В Инструменты меню выберите инструмент Всплывающих подсказок. Появляется диалоговое окно, напоминающее, как изменить атрибуты. Нажмите кнопку OK, чтобы закрыть окно.

    Курсор принимает перекрестие (+) форма. Щелкните сегмент дороги на карте, и инструмент всплывающей подсказки помещает небольшой маркер на дороге, который содержит числовой идентификатор, указывающий на административный класс. Класс дороги, пересекающей реку Чарльз, которую мы исследовали ранее, относится к 3 классу.

  13. Можно изменить способ визуализации дорог путем определения атрибута, которому присваивается символ ключевой линии. Цветные дороги в соответствии с их CLASS атрибут, который принимает значения 1:6. Сделайте это, создав symbolspec в рабочей области. Symbolspec - это массив ячеек, который связывает имена и значения атрибутов с графическими свойствами для заданного геометрического класса ('Point', 'MultiPoint', 'Line', 'Polygon', или 'Patch'). Чтобы создать symbolspec для объектов линий (в данном случае дорог), которые имеют CLASS атрибут, тип:

    roadcolors = makesymbolspec('Line', ...
    {'CLASS',1,'Color',[1 1 1]}, {'CLASS',2,'Color',[1 1 0]}, ...
    {'CLASS',3,'Color',[0 1 0]}, {'CLASS',4,'Color',[0 1 1]}, ...
    {'CLASS',5,'Color',[1 0 1]}, {'CLASS',6,'Color',[0 0 1]})
    

    Появится следующий выход:

    roadcolors = 
        ShapeType: 'Line'
            Color: {6x3 cell}
  14. Средство Map Viewer распознает и импортирует символы из рабочей области. Чтобы применить только что созданный, из меню Layers выберите boston_roads > Set Symbol Spec. В диалоговом окне «Символы слоя» выберите roadcolors symbolspec, который вы только что создали и нажмите OK.

    После того, как Map Viewer прочитал и применил symbolspec, карта выглядит следующим образом.

  15. Удалите всплывающие подсказки перед продолжением. Чтобы отключить всплывающие подсказки, щелкните правой кнопкой мыши один из них и выберите Delete all data tips из появившегося меню.

  16. Добавьте другой слой, набор точек, который идентифицирует 13 ориентиров Бостона. Как и с boston_roads слой, импортируйте его из файла shapefile:

    boston_placenames = shaperead('boston_placenames.shp');
    
  17. Преобразуйте координаты этих ориентиров в модули измерения футов съемки перед их импортом в Map Viewer. Места для этих достопримечательностей указаны в метрах.

    surveyFeetPerMeter = unitsratio('survey feet','meter');
    for k = 1:numel(boston_placenames)
        boston_placenames(k).X = ...
            surveyFeetPerMeter * boston_placenames(k).X;
        boston_placenames(k).Y = ...
            surveyFeetPerMeter * boston_placenames(k).Y;
    end
    
  18. В File меню выберите Import From Workspace > Vector Data > Geographic Data Structure. Выберите boston_placenames как данные для импорта из рабочей области и нажатия кнопки OK.

  19. The boston_placenames маркеры символизируются как маленькие x маркеры, но эти маркеры не появляются над ортофото. Чтобы решить эту проблему, создайте symbolspec для маркеров, чтобы представлять их как красные заполненные круги. В командной строке MATLAB введите:

    places = makesymbolspec('Point',{'Default','Marker','o', ...
    'MarkerEdgeColor','r','MarkerFaceColor','r'})

    The Default ключевое слово приводит к применению указанного символа ко всем объектам точек на данном слое, если только специально не переопределено символом с кодировкой атрибутов в том же или другом символе.

  20. Чтобы активировать этот symbolspec, выпадайте из меню Слоев, выберите boston_placenames, сдвиньте вправо и выберите Set Symbol Spec. В появившемся диалоговом окне «Символы слоя» подсвечивайте places и нажмите OK. Средство Map Viewer считывает переменную рабочей области places; крестовые знаки превращаются в красные круги. Обратите внимание, что слой не должен быть активным в порядок, чтобы вы применяли к нему symbolspec.

  21. Чтобы увидеть имя бостонского топонима, сделайте boston_placenames активный слой (в меню Активный слой (Active layer), а затем выберите всплывающие подсказки в меню Инструменты (Tools). Курсор изменяется на поперечную форму волос. Щелкните любой красный круг, и инструмент помещает аннотацию всплывающих подсказок на карту с именем местоположения.

  22. Увеличение масштаба на Beacon Hill для более близкого обзора дома штата Массачусеттс и Бостона Common. Выберите инструмент «Масштабирование»; перемещать курсор (лупу) до тех пор, пока значение X не станет приблизительно 774,011 и считывание Y примерно 2,955,615; и щелкните один раз, чтобы увеличить вид. Значение шкалы изменяется примерно на 1:12,500 и карта появится следующим образом.

  23. В меню Tools выберите Select Annotations для перехода из инструмента Datip на исходный курсор. Щелкните правой кнопкой мыши любую из всплывающих подсказок и выберите Удалить все данные (Delete all datatips) во всплывающем контекстном меню. Это очищает имена мест, добавленные на карту.

  24. Выберите интересующую область для сохранения в качестве файла изображения. Щелкните инструмент «Выбрать область», а затем удерживайте кнопку мыши вниз, когда вы рисуете прямоугольник выделения. Если выбор вам не нравится, повторите операцию до тех пор, пока вы не будете удовлетворены. Если вы знаете, какие координаты земли вы хотите, можно использовать считывания координат, чтобы сделать точный выбор. Выбранная область отображается в виде красного прямоугольника.

    Примечание

    Инструмент Select area не поддерживается в Online™ MATLAB. Чтобы просмотреть конкретную область на карте, используйте вместо этого инструменты Zoom in, Zoom out и Pan.

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

  26. Сохраните выбор как файл изображения. В меню « Файл» выберите Save As Raster Map > Selected Area, чтобы открыть диалоговое окно «Экспорт в файл».

    В диалоговом окне «Экспорт в файл» перейдите в папку, в которой вы хотите сохранить изображение карты, и сохраните изображение выбранной области как .tif файл, вызов central_boston.tif. (Также доступны форматы PNG и JPG.) A файла привязки, central_boston.tfw, создается вместе с TIF.

    Каждый раз, когда вы сохраняете растровую карту таким образом, создаются два файла:

    • Файл изображения (file.tif, file.png, или file.jpg)

    • Сопутствующее world file, которое ориентирует изображение (file.tfw, file.pgw, или file.jgw)

    Следующие шаги показывают, как считать файлы привязки и отобразить географическое изображение вне mapview.

  27. Прочтите в сохраненном изображении и его палитре с функцией MATLAB imread, создайте для него объект ссылки путем чтения central_boston.tfw с worldfileread, и отобразить карту с mapshow:

    [X,cmap] = imread('central_boston.tif');
    R = worldfileread('central_boston.tfw','planar',size(X));
    figure
    mapshow(X,cmap,R);

    См. документацию для mapshow для другого примера отображения изображения с географической привязкой.

  28. Экспериментируйте с другими инструментами и элементами меню. Например, вы можете аннотировать карту с помощью линий, стрел и текста; подгонка карты к окну; нарисуйте ограничительный прямоугольник для любого слоя; и распечатайте текущее представление. Вы также можете создать новый Map Viewer с помощью New View из меню File. Новое представление может дублировать текущее представление, покрывать пределы активного слоя, покрывать все границы слоя или включать только выбранную область, если она имеется.

    Когда вы пройдете с сеансом просмотра, закройте Map Viewer с помощью поля закрытия окна или выберите Close из меню File. Для получения дополнительной информации о программе Map Viewer см. раздел mapview страница с описанием.