exponenta event banner

addCustomBasemap

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

Описание

пример

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

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

пример

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

Примеры

свернуть все

В этом примере показано, как отобразить маршрут движения и позиции транспортного средства на базовой карте OpenStreetMap ®.

Добавьте базовую карту OpenStreetMap в список базовых карт, доступных для использования с geoplayer объект. После добавления базовой карты нет необходимости добавлять ее снова в будущих сессиях.

name = 'openstreetmap';
url = 'https://a.tile.openstreetmap.org/${z}/${x}/${y}.png';
copyright = char(uint8(169));
attribution = copyright + "OpenStreetMap contributors";
addCustomBasemap(name,url,'Attribution',attribution)

Загрузите последовательность координат широты и долготы.

data = load('geoRoute.mat');

Создание географического игрока. Центрируйте географический игрок на первой позиции маршрута движения и установите уровень масштабирования 12.

zoomLevel = 12;
player = geoplayer(data.latitude(1),data.longitude(1),zoomLevel);

Отображение полного маршрута.

plotRoute(player,data.latitude,data.longitude);

По умолчанию географический игрок использует базовую карту World Street Map ('streets') предоставляется компанией Esri ®. Обновите географический проигрыватель, чтобы использовать добавленную базовую карту OpenStreetMap.

player.Basemap = 'openstreetmap';

Снова отобразите маршрут.

plotRoute(player,data.latitude,data.longitude);

Отображение положения транспортного средства в последовательности.

for i = 1:length(data.latitude)
   plotPosition(player,data.latitude(i),data.longitude(i))
end

Отображение маршрута движения на базовой карте, предоставленной HERE Technologies. Чтобы использовать этот пример, необходимо иметь действительную лицензию от HERE Technologies.

Укажите имя базовой карты и URL-адрес карты.

name = 'herestreets';
url = ['https://1.base.maps.ls.hereapi.com/maptile/2.1/maptile/', ...
    'newest/normal.day/${z}/${x}/${y}/256/png?apikey=%s'];

Для карт из HERE Technologies требуется действующая лицензия. Создание диалогового окна. В диалоговом окне введите код ключа доступа, соответствующий лицензии HERE.

prompt = {'HERE Access Key ID:'};
title = 'HERE Tokens';
dims = [1 40]; % Text edit field height and width
hereTokens = inputdlg(prompt,title,dims);

Если лицензия действительна, укажите учетные данные HERE и пользовательский атрибут, загрузите данные координат и отобразите координаты на базовой карте HERE с помощью geoplayer объект. Если лицензия недействительна, отобразите сообщение об ошибке.

if ~isempty(hereTokens)
        
    % Add HERE basemap with custom attribution.
    url = sprintf(url,hereTokens{1});
    copyrightSymbol = char(169); % Alt code
    attribution = [copyrightSymbol,' ',datestr(now,'yyyy'),' HERE'];
    addCustomBasemap(name,url,'Attribution',attribution);

    % Load sample lat,lon coordinates.
    data = load('geoSequence.mat');

    % Create geoplayer with HERE basemap.
    player = geoplayer(data.latitude(1),data.longitude(1), ...
        'Basemap','herestreets','HistoryDepth',Inf);
 
    % Display the coordinates in a sequence.
    for i = 1:length(data.latitude)
        plotPosition(player,data.latitude(i),data.longitude(i));
    end

else
    error('You must enter valid credentials to access maps from HERE Technologies');
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' и строковый скалярный или символьный вектор.

Пример: 'OpenStreetMap'

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

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

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

Map развертывается с помощью компилятора MATLAB, указанного как пара, разделенная запятыми, состоящая из 'IsDeployable' и false или true.

Если вы развертываете приложение карты и хотите, чтобы пользователи имели доступ к добавленной базовой карте, установите 'IsDeployable' кому true. Карты в geoplayer объекты не могут быть развернуты. При использовании geoplayer объект, оставить 'IsDeployable' установить в значение false.

Типы данных: logical

Совет

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

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

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