Многие картографические функции Mapping Toolbox™ проецируют признаки на оси карты на основе их назначенных положений широты-долготы. Широты и долготы математически преобразованы в положения x и y с помощью формул для текущей проекции карты. Если проекция карты или ее параметры изменяются, объекты на осях карты могут быть автоматически перепроектированы, чтобы соответствующим образом обновить отображение карты.
Таблица суммирует четыре распространенных примера использования для изменения проекции карты в осях карты с setm
или для перепроектирования картографических данных, нанесенных на обычный MATLAB® осей.
Пример использования отображения | Тип осей | Поведение репроекции |
---|---|---|
Постройте график географических (широта-долгота) векторных данных координат или сетки данных с помощью функции Mapping Toolbox из релизов до версии 2 (например, plotm ) | Сопоставить оси | Автоматическая репроекция |
Постройте график данных о географических векторах с geoshow | Сопоставить оси | Нет автоматической репроекции; удалите графические объекты перед изменением проекции и перерисовайте их после. |
Постройте графики сетки данных, изображений и контуров с географическими координатами с geoshow | Сопоставить оси | Автоматическая репроекция; это поведение может измениться в будущем релизе |
Постройте проекционный (x-y) вектор или данные растровой карты с mapshow или с графической функцией MATLAB (например, line , contour , или surf ) | Правильные оси | Ручная репроекция (перепроектировать координаты с projinv /projfwd ); удалите графические объекты перед изменением проекции и перерисовайте их после. |
Вы можете использовать handlem
для определения объектов, удаляемых при необходимости удаления вручную. Пример его использования см. в разделе Работа с объектами по имени.
Использование setm
функция, вы можете изменить текущую проекцию карты на лету, если отображение карты было создано способом, который позволяет перепроектировать. Обратите внимание, что отображения карты может содержать объекты, которые не могут быть перепроектированы, и может потребоваться явное удаление и перерисовка. Автоматическая репроекция будет происходить, когда вы используете setm
для изменения MapProjection
свойство или любое другое свойство оси из следующего списка:
AngleUnits
Aspect
FalseEasting
FalseNorthing
FLatLimit
FLonLimit
Geoid
MapLatLimit
MapLonLimit
MapParallels
Origin
ScaleFactor
TrimLat
TrimLon
Zone
Автоматическая репроекция выполняется для объектов, созданных с помощью любой из следующих функций Mapping Toolbox:
Вышеописанные функции Mapping Toolbox аналогичны стандартным графическим функциям MATLAB, имеющим то же имя, за вычетом конечных m
. Можно использовать оба типа функций для построения графика данных на осях карты, если известно, что стандартные графические функции MATLAB не применяют преобразования проекции карты и, следовательно, требуют, чтобы вы задавали положения в пространстве карты x-y.
В целом объекты, созданные с geoshow
или с комбинацией вызовов на projfwd
далее следуют обычные графические функции MATLAB, такие как line
, patch
, или surface
, не перепроектируются автоматически. Вы должны удалять такие объекты каждый раз, когда вы изменяете одно или несколько свойств осей карты, перечисленных выше, и затем повторно отображать их.
Если у вас есть предварительно проектированные векторные или растровые данные карты или вы читаете такие данные из файлов, вы можете отобразить их с mapshow
, mapview
, или стандартные графические функции MATLAB, такие как plot
или mesh
. Если его проекция известна и включена в библиотеки проекций Mapping Toolbox, можно использовать ее параметры для проецирования геоданных в географических координатах, чтобы отобразить их в тех же осях.
Если вы хотите иметь возможность изменять проекцию карты на лету, вы не должны использовать geoshow
. Некоторые функции отображения, такие как patchm
, fillm
, displaym
, и linem
, позволяет вам перепроектировать данные векторной карты, но geoshow
не делает. То есть, когда вы меняете проекцию осей карты, с setm
для примера вектора символику карты, которая была создана с geoshow
не будет преобразован. Данные с сеткой, визуализированные с geoshow
(когда DisplayType
является surface
, texturemap
, или contour
), однако, может быть перепроектирован.
Для примеров поведения репроекции с векторными данными и растровыми данными смотрите Изменение проекций карты с использованием геопоказа.