addCustomBasemap

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

Описание

пример

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

Можно использовать пользовательский basemaps с несколькими типами отображений карты, например, веб-карты создали использование 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;

Отобразите маршрут планера в 2D и 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;

Отобразите путь в 2D использующих географических осях. Задайте основную карту с помощью 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. Это может быть хорошим способом просмотреть карты, доступные от сайта и определить, какая карта обеспечивает лучший фон для ваших данных.

Просмотрите путь к планеру на basemaps из Национальной Карты USGS. Создайте URL основной карты, заменив basemap с именем основной карты USGS.

Читайте в данных о дорожке пути к планеру.

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

Задайте пользовательскую основную карту URL. Национальная Карта USGS поддерживает несколько мозаичных веб-карт. В данном примере вставьте слово "ОСНОВНАЯ КАРТА" в строку URL. Таким образом можно заменить слово ОСНОВНАЯ КАРТА на имя одной из карт, поддержанных Национальной Картой USGS.

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

Задайте список имен USGS basemaps, что вы хотите использовать. Эти имена будут вставлены в URL вместо "ОСНОВНОЙ КАРТЫ".

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 basemaps.

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, задайте пустое значение (''). Чтобы создать многострочное приписывание, задайте массив строк или нескалярный массив ячеек из символьных векторов.

Если вы не задаете приписывание, приписывание по умолчанию является 'Любезностью мозаик 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 в вашем приложении или за пределами вашего приложения.

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

Введенный в R2018b