exponenta event banner

addCustomBasemap

Добавить пользовательскую базовую карту

Описание

пример

addCustomBasemap(basemapName,URL) добавляет пользовательскую базовую карту, заданную URL в список базовых карт, доступных для использования с функциями отображения. basemapName - это имя, которое вы выбираете для вызова пользовательской базовой карты. Добавленные базовые карты остаются доступными для использования в будущих сессиях MATLAB ®.

Можно использовать пользовательские базовые карты с несколькими типами отображения карт, например веб-карты, созданные с помощью webmap функция, географические глобусы, созданные с помощью geoglobe и географические оси, созданные с помощью geoaxes функция.

пример

addCustomBasemap(___,Name,Value) определяет пары «имя-значение», которые задают дополнительные параметры базовой карты.

Примеры

свернуть все

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

Определите имя, которое будет использоваться для указания пользовательской базовой карты.

name = 'openstreetmap';

Укажите веб-сайт, предоставляющий данные карты. Первый символ URL указывает, какой сервер использовать для получения данных. Для балансировки нагрузки поставщик имеет три сервера, которые можно использовать: a, b или c.

url = 'a.tile.openstreetmap.org';

Создайте атрибуцию для отображения на карте, которая дает кредит поставщику данных карты. Поставщики веб-карт могут определять конкретные требования для атрибуции.

copyright = char(uint8(169));
attribution = copyright + "OpenStreetMap contributors";

Добавьте пользовательскую базовую карту в список доступных слоев базовой карты.

addCustomBasemap(name,url,'Attribution',attribution)

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

lat = [42.3501 42.3515 42.3598 42.3584 42.3529];
lon = [-71.0870 -71.0926 -71.0662 -71.0598 -71.0662];
gb = geobubble(lat,lon,'Basemap','openstreetmap');
gb.BubbleWidthRange = 25;
gb.MapLayout = 'maximized';
gb.ZoomLevel = 14;

Отображение маршрута планера в 2-D и 3-D с помощью топографической базовой карты из национальной карты USGS.

Перед добавлением базовой карты укажите местоположение фрагментов карты. Для этого укажите URL-адрес каталога служб National Map ArcGIS REST Services. Затем добавьте путь к плиткам карты из службы базовой карты USGS Topo.

url = "https://basemap.nationalmap.gov/ArcGIS/rest/services";
fullurl = url + "/USGSTopo/MapServer/tile/${z}/${y}/${x}";

Укажите имя базовой карты и текста атрибуции для отображения вместе с ней.

nm = 'usgstopo';
att = 'Credit: US Geological Survey';

Наконец, добавьте базовую карту USGS Topo.

addCustomBasemap(nm,fullurl,'Attribution',att)

Постройте график движения планера над базовой картой. Для этого импортируйте значения широты, долготы и высоты геоида.

trk = gpxread('sample_mixed','FeatureType','track');
lat = trk.Latitude;
lon = trk.Longitude;
h = trk.Elevation;

Отображение траектории в 2-D с использованием географических осей. Укажите базовую карту с помощью geobasemap и имя базовой карты. Используйте имя базовой карты, указанное при ее создании. Звонить hold on перед печатью линии, чтобы предотвратить сброс базовой карты.

geoplot(lat,lon)
geobasemap('usgstopo')
hold on
geoplot(lat,lon,'r')

A line plotted over a topographic map.

Отображение пути в 3-D с помощью географического глобуса. Укажите базовую карту с помощью 'Basemap' аргумент пары имя-значение. По умолчанию вид находится непосредственно над контуром. Наклоните вид, удерживая нажатой клавишу CTRL.

uif = uifigure;
g = geoglobe(uif,'Basemap','usgstopo');
hold(g,'on')
geoplot3(g,lat,lon,h,'r')

A 3-D line plotted over a region with topographic imagery.

Отображение маршрута планера на веб-карте с помощью базовой карты из OpenTopoMap.

Определите имя, которое будет использоваться для указания пользовательской базовой карты.

name = 'opentopomap';

Укажите веб-сайт, предоставляющий данные карты. Первый символ URL указывает, какой сервер использовать для получения данных. Для балансировки нагрузки поставщик имеет три сервера, которые можно использовать: a, b или c.

url = 'a.tile.opentopomap.org';

Создайте атрибуцию для отображения на карте, которая дает кредит поставщику данных карты. Поставщики веб-карт могут определять конкретные требования для атрибуции.

copyright = char(uint8(169));
attribution = [ ...
      "map data:  " + copyright + "OpenStreetMap contributors,SRTM", ...
      "map style: " + copyright + "OpenTopoMap (CC-BY-SA)"];

Определите имя, которое будет отображаться в Диспетчере слоев для представления пользовательской базовой карты.

displayName = 'Open Topo Map';

Добавьте пользовательскую базовую карту в список доступных слоев базовой карты.

addCustomBasemap(name,url,'Attribution',attribution, ...
                          'DisplayName',displayName)

Откройте веб-карту. Укажите пользовательскую базовую карту, используя имя, определенное при ее добавлении. Затем прочтите данные планера в рабочую область и нанесите их на базовую карту.

webmap opentopomap
trk = gpxread('sample_mixed.gpx','FeatureType','track');
wmline(trk,'LineWidth',2)

Glider data plotted over a topographic basemap

Постройте график данных траектории планера на различных картах, доступных с сайта национальной карты USGS. Это может быть хорошим способом просмотра карт, доступных с сайта, и определения того, какая карта обеспечивает наилучший фон для ваших данных.

Просмотр траектории планера на базовых картах из национальной карты USGS. Создание URL-адресов базовых карт путем замены basemap с именем базовой карты USGS.

Прочтите данные траектории планера.

trk = gpxread('sample_mixed','FeatureType','track');

Укажите пользовательский URL-адрес базовой карты. Национальная карта USGS поддерживает несколько мозаичных веб-карт. Для этого примера вставьте слово «BASEMAP» в строку URL. Таким образом, можно заменить слово BASEMAP именем одной из карт, поддерживаемых национальной картой USGS.

baseURL = "https://basemap.nationalmap.gov/ArcGIS/rest/services";
usgsURL = baseURL + "/BASEMAP/MapServer/tile/${z}/${y}/${x}";

Укажите список имен базовых карт USGS, которые необходимо использовать. Эти имена будут вставлены в URL вместо «BASEMAP».

basemaps = ["USGSImageryOnly" "USGSImageryTopo" ...
       "USGSTopo" "USGSShadedReliefOnly" "USGSHydroCached"];

Укажите список отображаемых имен, которые можно использовать с каждой картой. Использовать отображаемые имена, которые совпадают с именами, используемыми webmap чтобы webmap не содержит повторяющихся карт.

displayNames = ["USGS Imagery" "USGS Topographic Imagery" ...
       "USGS Shaded Topographic Map" "USGS Shaded Relief" ...
       "USGS Hydrography"];
maxZoomLevel = 16;

Создайте атрибуцию карты для предоставления кредита поставщику данных карты.

attribution = 'Credit: U.S. Geological Survey';

Создайте цикл, в котором используется каждая базовая карта с geoplot функция, строящая данные планера на каждой из базовых схем USGS.

for k =1:length(basemaps)
   basemap = basemaps(k);
   name = lower(basemap);
   url = replace(usgsURL,"BASEMAP",basemap);
   displayName = displayNames(k);
   addCustomBasemap(name,url,'Attribution',attribution, ...
         'DisplayName',displayName,'MaxZoomLevel',maxZoomLevel)
   figure
   geoplot(trk.Latitude,trk.Longitude,'r','LineWidth',5);
   geobasemap(basemap)
   title(displayName)
end

Входные аргументы

свернуть все

Имя, используемое для программной идентификации базовой карты, определяемое как строковый скалярный или символьный вектор.

Пример: 'openstreetmap'

Типы данных: string | char

URL-адрес параметризованной карты, указанный как строковый скалярный или символьный вектор. Параметризованный URL-адрес - это индекс фрагментов карты, отформатированный как ${z}/${x}/${y}.png или {z}/{x}/{y}.png, где:

  • ${z} или {z} - уровень масштабирования плитки.

  • ${x} или {x} - индекс столбца плитки.

  • ${y} или {y} - индекс строки плитки.

Пример: 'https://hostname/${z}/${x}/${y}.png'

Типы данных: string | char

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: addCustomBasemap(basemapName,URL,'Attribution',attribution)

Атрибуция пользовательской базовой карты, указанной как разделенная запятыми пара, состоящая из 'Attribution' и строковый скаляр, строковый массив, символьный вектор или клеточный массив символьных векторов. Если хост 'localhost', или если URL содержит только IP-номера, укажите пустое значение (''). Чтобы создать многострочный атрибут, укажите строковый массив или нескалярный массив ячеек символьных векторов.

Если атрибут не указан, по умолчанию используется атрибут 'Tiles courtesy of DOMAIN_NAME_OF_URL', где addCustomBasemap функция получает имя домена из URL входной аргумент.

Пример: 'Credit: U.S. Geological Survey'

Типы данных: string | char | cell

Отображаемое имя пользовательской базовой карты, указанной как разделенная запятыми пара, состоящая из 'DisplayName' и строковый скалярный или символьный вектор.

webmap использует это имя в Диспетчере слоев.

Пример: 'OpenStreetMap'

Типы данных: string | char

Максимальный уровень масштабирования базовой карты, определяемый как разделенная запятыми пара, состоящая из 'MaxZoomLevel' и целое число в диапазоне [0, 25].

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Совет

  • Вы можете найти мозаичные веб-карты от различных поставщиков, таких как OpenStreetMap ®, USGS National Map, Mapbox, DigityGlobe, Esri ® ArcGIS Online, Управления геопространственной информации Японии (GSI) и HERE Technologies. Соблюдайте условия соглашения с поставщиками карт и включите точную атрибуцию используемых карт.

  • Использование пользовательской базовой карты в развернутом приложении при вызове addCustomBasemap, необходимо задать значение 'IsDeployable' пара имя-значение к true. Необходимо задать эту пару «имя-значение» независимо от вызова addCustomBasemap в вашем приложении или за его пределами.

  • Чтобы получить доступ к списку доступных базовых карт, нажмите клавишу TAB, прежде чем указать базовую карту в функции печати.

Представлен в R2018b