addCustomBasemap

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

Описание

пример

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

Можно использовать пользовательские основные карты с несколькими типами отображений карт, например, веб-карты, созданные с помощью webmap function, географические глобусы, созданные с помощью geoglobe function и географические оси, созданные с помощью 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-адрес Национальной карты ArcGIS REST Services Directory. Затем добавьте путь к плиткам карты из сервиса основной карты 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 function и имя основной карты. Используйте имя основной карты, заданное при его создании. Звонить 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 National Map. Просмотр данных по нескольким картам может помочь вам определить, какая карта обеспечивает лучший фон.

Считайте в планере пути отследите данные.

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

Укажите пользовательский URL-адрес основной карты. USGS National Map поддерживает несколько мозаичных веб-карт. В данном примере вставьте слово 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" "USGSHydroCached"];

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

displayNames = ["USGS Imagery" "USGS Topographic Imagery" ...
       "USGS Shaded Topographic Map" "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-номера, задайте пустое значение (''). Чтобы создать атрибут multiline, задайте строковые массивы или нескалярный массив ячеек из векторов символов.

Если вы не задаете атрибуцию, атрибуцией по умолчанию является 'Плитки предоставлены 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, Mapbox, DigitalGlobe, Esri® ArcGIS Online, Управление геопространственной информации Японии (GSI) и HERE Technologies. Соблюдайте условия соглашения с поставщиками карты и включите точную атрибуцию с используемыми картами.

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

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

Введенный в R2018b