主要内容

geoplayer

可视化流地理地图数据

描述

一个geoplayer对象是一个地理播放器,它在地图上显示驾驶路线的流坐标。

  • 要显示车辆的行驶路线,请使用plotRoute函数。

  • 要显示车辆沿路线行驶时的位置,请使用plotPosition函数。您可以通过为每条路线指定唯一的轨道ID,同时绘制不同路线上多辆车辆的位置。有关更多信息,请参见“TrackID”名称-值对参数plotPosition

  • 更改底层映射,或者基础图geoplayer对象,则更新基础图对象的属性。有关更多信息,请参见自定义视频

创建

描述

Player = geoplayer(latCenterlonCenter创建一个地理播放器,以纬度坐标为中心latCenter经度坐标lonCenter

例子

Player = geoplayer(latCenterlonCenterzoomLevel创建具有指定的地图放大倍数的地理播放器zoomLevel

例子

Player = geoplayer(___名称,值属性使用一个或多个名称-值对,并指定以前语法中的输入参数。例如,geoplayer (45 0 HistoryDepth, 5)创建以经纬度坐标(45,0)为中心的地理播放器,并设置HistoryDepth属性,以便玩家显示前五个地理坐标。

输入参数

全部展开

地理播放器位于中心的纬度坐标,指定为范围内的实标量(- 90,90)。

数据类型:|

地理玩家位于中心的经度坐标,指定为范围[-180,180]中的实标量。

数据类型:|

地理播放器的放大倍数,指定为范围[0,25]的整数。这种放大发生在以2为底的对数刻度上。增加zoomLevel地图比例翻倍。

属性

全部展开

以前要显示的地理坐标的数目,指定为非负整数或.值为0仅显示当前地理坐标。值为控件显示以前绘制的所有地理坐标plotPosition函数。

只有在创建对象时才能设置此属性。创建对象后,此属性为只读。

显示的地理坐标的样式,指定为以下值之一:

  • “点”-将坐标显示为离散的、不相连的点。

  • “行”-将坐标显示为单线连接。

您可以在创建对象时设置此属性。创建对象后,此属性为只读。

要在其上绘制数据的映射,指定为本表中的基映射名称之一,“没有”类定义的自定义基映射addCustomBasemap函数。有关添加自定义基映射的详细信息,请参见自定义视频.有关如何添加自定义底图的示例,请参见在OpenStreetMap基础地图上显示数据而且在HERE Basemap上显示数据

“街道”技术。

“街道”(默认)

街道地图数据由使用Esri提供的世界街道地图的地理地图块组成®.有关地图的更多信息,请参见世界街道地图在Esri ArcGIS网站上。

Esri主持。

“streets-light”技术。

“streets-light”

地图设计提供地理背景,同时突出显示用户数据在浅色背景。

Esri主持。

“streets-dark”技术。

“streets-dark”

地图设计提供地理背景,同时突出显示用户数据在黑暗的背景。

Esri主持。

“卫星”技术。

“卫星”

由高分辨率卫星图像组成的完整全球底图。

Esri主持。

“地形”技术。

“地形”

具有描述地形特征样式的通用地图。

Esri主持。

“landcover”技术。

“landcover”

结合卫星获取的土地覆盖数据、阴影浮雕和海底浮雕的地图。浅色,自然的调色板适合专题和参考地图。

创建使用自然地球

“colorterrain”技术。

“colorterrain”

阴影浮雕地图与土地覆盖调色板混合。潮湿的低地是绿色的,干旱的低地是棕色的。

创建使用自然地球

“grayterrain”技术。

“grayterrain”

地形图的灰色阴影。阴影浮雕强调了高山和低地的微地形。

创建使用自然地球

“bluegreen”技术。

“bluegreen”

双色陆地-海洋地图,浅绿色陆地区域和浅蓝色水域区域。

创建使用自然地球

“grayland”技术。

“grayland”

双色陆地-海洋地图,灰色陆地区域和白色水域。

创建使用自然地球

“darkwater”技术。

“darkwater”

双色陆地-海洋地图,浅灰色陆地区域和深灰色水域。该底图是用MATLAB安装的®

创建使用自然地球

N/A

“没有”

地理轴使用经纬度网格、刻度和标签绘制数据,但不包括地图。

默认情况下,访问基图需要Internet连接。唯一的例外是“darkwater”basemap,它是用MATLAB安装的。

如果您没有一致的Internet访问,您可以下载使用自然地球使用Add-On资源管理器连接到本地系统。Esri托管的底图不能下载。有关下载基图的详细信息,请参见访问地理轴和图表的基本地图

Esri托管的basemap定期更新。因此,随着时间的推移,您可能会看到可视化的差异。

边界和区域标签的对齐是数据供应商提供的特性的表示,并不意味着得到MathWorks的认可®

例子:player = geoplayer(latCenter,lonCenter,'Basemap','darkwater')

例子:的球员。基础图= 'darkwater'

数据类型:字符|字符串

根据指定的轨道ID(指定为正整数)向中心显示。的geoplayer方法指定的新位置时,对象将重定向映射latCenter而且lonCenter,移动到当前可见地图区域之外。您还可以使用此属性使先前绘制的轨迹在可视区域之外的地图重新居中。属性定义曲目ID“TrackID”类时,名称-值对参数plotPosition对象的功能。

地理播放器的父轴,指定为数字图形对象或面板图形对象。如果您没有指定,然后geoplayer在新图形中创建地理播放器。

您可以在创建对象时设置此属性。创建对象后,此属性为只读。

地理玩家使用的斧头,指定为GeographicAxes对象。使用这个轴来自定义地理播放器显示的地图。有关示例,请参见自定义地理轴.有关可以自定义的属性的详细信息,请参见GeographicAxes属性

对象的功能

plotPosition 显示当前位置geoplayer数字
plotRoute 显示连续路由geoplayer数字
重置 删除所有现有的图geoplayer数字
显示 使geoplayer图可见
隐藏 使geoplayer图看不见
isOpen 如果返回truegeoplayer图可见

例子

全部折叠

加载经纬度坐标序列。

数据=负载(“geoSequence.mat”);

创建一个地理播放器,并将其配置为显示其历史中的所有点。

zoomLevel = 17;player = geoplayer(data.latitude(1),data.longitude(1),zoomLevel,“HistoryDepth”、正);

显示坐标序列。

i = 1:长度(数据.纬度)plotPosition(播放器,数据.纬度(i),数据.经度(i));暂停(0.01)结束

加载经纬度坐标序列。

数据=负载(“geoRoute.mat”);

创建一个地理播放器,并设置缩放级别为12。与默认的缩放级别相比,这个缩放级别将地图放大8倍。

玩家= geoplayer(data.latitude(1),data.longitude(1),12);

显示全路由。

plotRoute(球员,data.latitude data.longitude);

按顺序显示坐标。圆形标记表示当前位置。

i = 1:长度(数据.纬度)plotPosition(播放器,数据.纬度(i),数据.经度(i));暂停(0.05)结束

本示例展示如何在OpenStreetMap®底图上显示驾驶路线和车辆位置。

属性可使用的基映射列表中添加OpenStreetMap基映射geoplayer对象。添加基准地图后,在以后的会话中不需要再次添加它。

name =“公开”;url =“https://a.tile.openstreetmap.org/ $ {z} / {x} / {y} . png美元”;版权所有= char(uint8(169));归属=版权+“OpenStreetMap贡献者”;addCustomBasemap(名称、网址“归因”归因)

加载经纬度坐标序列。

数据=负载(“geoRoute.mat”);

创建一个地域玩家。将地理播放器置于驾驶路线的第一个位置,并将缩放级别设置为12。

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

显示全路由。

plotRoute(球员,data.latitude data.longitude);

默认情况下,地理播放器使用世界街道地图基本地图(“街道”)由Esri®提供。更新地理播放器以使用添加的OpenStreetMap基础地图。

的球员。基础图=“公开”

重新显示路由。

plotRoute(球员,data.latitude data.longitude);

按顺序显示车辆的位置。

i = 1:length(data.latitude) plotPosition(player,data.latitude(i),data.longitude(i))结束

在HERE Technologies提供的基本地图上显示驾驶路线。要使用此示例,您必须拥有有效的许可证这里的技术

指定基映射名称和映射URL。

name =“herestreets”;Url = [“https://1.base.maps.ls.hereapi.com/maptile/2.1/maptile/”...的最新/ normal.day / $ {z} / {x} / {y}美元/ 256 / png吗?apikey = % s '];

HERE Technologies的地图需要有效的许可证。创建对话框。在对话框中,输入与HERE许可证对应的Access Key ID。

提示= {这里访问密钥ID:};title =“这令牌”;Dims = [1 40];文本编辑字段的高度和宽度hereTokens = inputdlg(提示,标题,昏暗);

如果许可证有效,则指定HERE凭据和自定义属性,加载坐标数据,并使用geoplayer对象。如果license不合法,则返回错误提示。

如果~ isempty (hereTokens)添加自定义属性的基本地图。url = sprintf(url,hereTokens{1});copyrightSymbol = char(169);% Alt代码attribution = [copyrightSymbol,]' 'datestr(现在,“yyyy”),“在这里”];addCustomBasemap(名称、网址“归因”、归因);加载样本纬度,长度坐标。数据=负载(“geoSequence.mat”);使用HERE底图创建地理播放器。玩家= geoplayer(data.latitude(1),data.longitude(1),...“技术”“herestreets”“HistoryDepth”、正);显示序列中的坐标。i = 1:长度(数据.纬度)plotPosition(播放器,数据.纬度(i),数据.经度(i));结束其他的错误(“您必须输入有效凭据才能从HERE Technologies访问地图”);结束

的地理轴geoplayer通过在路由端点之间添加自定义行来实现。

加载一个驾驶路线和沿该路线的车辆位置。

数据=负载(“geoRoute.mat”);

创建一个以车辆第一个位置为中心的地理玩家。

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

显示全路由。

plotRoute(球员,data.latitude data.longitude);

显示车辆在沿途的位置。

i = 1:length(data.latitude) plotPosition(player,data.latitude(i),data.longitude(i))结束

通过在路由的两个端点之间添加一条线来定制地理轴。

geoplot (player.Axes [data.latitude (1) data.latitude(结束),...[data.longitude (1) data.longitude(结束),“g - *”

在地理玩家中同时绘制多条路线。首先,为每条路由分配一个唯一的标识符。然后,在绘制路线上的点时使用plotPosition方法指定路由标识符“TrackID”名称-值对参数。在本例中,路由被标记为Vehicle 1和Vehicle 2。这个屏幕截图显示了两条路线将要交叉的位置。

加载路由数据。

数据=负载(“geoRoute.mat”);

提取第一辆车的数据。

Lat1 = data.latitude;Lon1 = data.longitude;

为第二辆以相反方向行驶同一路线的车辆创建合成路线。

Lat2 = flipud(lat1);Lon2 = flipud(lon1);

创建一个geoplayer对象。初始化播放器,显示最后10个位置为一行尾随当前位置。

zoomLevel = 12;玩家= geoplayer(lat1(1),lon1(1),zoomLevel,...“HistoryDepth”10“HistoryStyle”“行”);

画出两辆车在路线上行驶时的位置。属性为每个轨道指定一个ID“TrackID”名称-值对参数。默认情况下,geoplayer对象将车辆的显示集中在第一个轨道上。控件可以将显示置于其他轨道的居中CenterOnID的属性geoplayer对象。

loopCounter = length(lat1);i = 1:loopCounter plotPosition(玩家,lat1(i),lon1(i),“TrackID”, 1“标签”“车辆1”);plotPosition(球员,lat2(我),lon2(我),“TrackID”2,“标签”《车辆2》);结束

限制

  • 并非所有位置都可以使用地理地图磁贴。

更多关于

全部展开

提示

  • geoplayer对象绘制在地图的当前视图之外的位置,则对象自动滚动地图。

版本历史

在R2018a中引入