Перепроекция графических объектов

Многие Mapping Toolbox™ картографический проект функций показывают в карте оси на основе их обозначенных положений долготы широты. Широты и долготы математически преобразовываются к позициям X и Y с помощью формул для текущей проекции карты. Если проекция карты или ее изменение параметров, объекты на карте оси могут быть автоматически повторно спроектированы, чтобы обновить отображение карты соответственно.

Таблица суммирует четыре случая общего использования для изменения проекции карты в карте оси с setm или для перепроектирования данных о карте, отображенных на графике на регулярном MATLAB® оси.

Отображение варианта использованияТип осейПоведение перепроекции
Отобразите на графике географический (долгота широты) векторные координатные данные или сетка данных с помощью функции Mapping Toolbox от релизов до Версии 2 (например, plotm)Сопоставьте осиАвтоматическая перепроекция
Отобразите географические векторные данные на графике с geoshowСопоставьте осиНикакая автоматическая перепроекция; удалите графические объекты до изменения проекции и перерисуйте их впоследствии.
Постройте сетки данных, изображения и контуры с географическими координатами с geoshowСопоставьте осиАвтоматическая перепроекция; это поведение могло измениться в будущем релизе
График спроектировал (x-y) вектор или растровые данные о карте с mapshow или с функцией графики MATLAB (например, line, contour или surf)Регулярные осиРучная перепроекция (перепроект координирует с minvtran/mfwdtran или 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 или с комбинацией вызовов mfwdtran, сопровождаемого обычными функциями графики MATLAB, такими как line, patch, или surface, автоматически не повторно спроектированы. Необходимо удалить такие объекты каждый раз, когда вы изменяете один или несколько свойств осей карты, упомянутых выше, и затем вновь отображаете их.

Если вы предварительно спроектировали вектор или растровые данные о карте или считали такие данные из файлов, можно отобразить его с mapshow, mapview или стандартными функциями графики MATLAB, такими как plot или mesh. Если его проекция известна и включена в библиотеки проекции Mapping Toolbox, можно использовать ее параметры, чтобы спроектировать геоданные в географических координатах, чтобы отобразить его в тех же осях.

Reprojectability Карт, Сгенерированных Используя геопоказ

Если вы хотите смочь изменить проекцию карты на лету, вы не должны использовать geoshow. Некоторые функции отображения, такие как patchm, fillm, displaym, и linem, включают вам к данным о карте вектора перепроекта, но geoshow не делает. Таким образом, когда вы измените проекцию осей карты, с setm, например, не будет преобразовано векторное символическое обозначение карты, которое было создано с geoshow. Данные с координатной сеткой представили с geoshow (когда DisplayType является surface, texturemap или contour), однако, может быть повторно спроектирован.

Для примеров поведения перепроекции с векторными данными и растровыми данными, смотрите, что Проекции Карты Изменения Использовать геопоказывают.