从你的移动设备和情节获取GPS数据在地图上的位置和速度
这个例子展示了如何从一个Android™收集位置数据或iOS移动设备并将其显示在地图上。纬度和经度坐标用于标记设备的路线。速度是用来将颜色添加到路由信息。最终结果是一个可视化表示设备的位置和速度的旅程。
这个例子需要映射工具箱™。
设置您的移动设备
为了从一个移动设备接收数据MATLAB®,您将需要安装和设置MATLAB移动™应用程序在您的移动设备。
登录到MathWorks从MATLAB®云手机设置。
创建一个连接到您的移动设备
在命令屏幕MATLAB移动,使用mobiledev
命令来创建一个对象,代表你的移动设备。
m = mobiledev;
显示输出应该显示联系:1
,这表明mobiledev
对象已成功建立了一个连接到应用程序。
准备位置传感器的数据采集
为了收集GPS数据,首先确保你的设备的全球定位系统(GPS)是打开的。如果上启用移动设备的位置设置,移动网络和无线网络也可以用来确定位置。
使你的移动设备上的位置传感器。
m。PositionSensorEnabled = 1;
它可能需要一些时间数据出现在传感器MATLAB移动屏幕的设备需要寻找一个GPS信号。在室内GPS信号通常是不可用的。
开始获取数据
使传感器后,传感器MATLAB移动屏幕将显示当前的传感器测量的数据。的日志记录
属性允许您将传感器数据开始mobiledev
。
m。日志= 1;
收集位置数据
设备上的所有位置传感器数据记录已经被记录mobiledev
。
在这个例子中,该设备拍摄于MathWorks周围开一小段。
停止记录数据
使用mobiledev
日志记录属性再次停止日志数据。
m。日志= 0;
检索记录位置数据
创建地图,纬度、经度和速度数据需要。的poslog
函数可用于检索此信息mobiledev
。
(纬度,经度,t,社民党)= poslog (m);
对于这个示例,数据已被记录并保存。
负载drivingAroundMathWorks纬度朗社会民主党;
本速度成颜色值
速度值被为了使用一个离散数量的颜色代表观察到的速度。
nBins = 10;binSpacing = (max (spd) - min (spd)) / nBins;binRanges = min (spd): binSpacing:马克斯(spd) -binSpacing;%添加一个inf binRanges附上上述值最后一本。binRanges结束(+ 1)=正;% | histc |确定哪些本每个速度值落入。[~,spdBins] = histc(社民党binRanges);
分裂的经度和纬度数据的速度
创建一个不连续线段每本速度。这些部分将被分配一个颜色。这将创建更少总比治疗每相邻两线段的纬度和经度值作为自己的线段。
个人部分存储地理特性使用geoshape
从映射工具。
lat = lat ';朗=朗';spdBins = spdBins ';%创建一个地理形状向量,商店的线段%的特性。s = geoshape ();为k = 1: nBins%的纬度/经度值只保留当前本比赛。离开%其他南,解释为减免的线段。latValid =南(1、长度(lat));latValid (spdBins = = k) =纬度(spdBins = = k);lonValid =南(1、长度(朗));lonValid (spdBins = = k) =朗(spdBins = = k);%的连续尽管被分割成不同的道路%的颜色,后发生的纬度/经度值的过渡%流速本到另一本需要保持速度。转换= (diff (spdBins) 0);insertionInd =找到(spdBins = = k &转换~ = 0)+ 1;% Preallocate空间和插入额外的纬度/经度值。latSeg = 0(1,长度(latValid) + (insertionInd));latSeg (insertionInd +(0:长度(insertionInd) 1)) =纬度(insertionInd);latSeg (~ latSeg) = latValid;lonSeg = 0(1,长度(lonValid) + (insertionInd));lonSeg (insertionInd +(0:长度(insertionInd) 1)) =经度(insertionInd);lonSeg (~ lonSeg) = lonValid;%将纬度/经度段添加到地理形状向量。s (k) = geoshape (latSeg lonSeg);结束
创建一个Web地图和路线覆盖
作品现在可以组合成一个webmap显示。纬度和经度数据处理来弥补个人线段覆盖在地图上。每个线段的颜色对应的速度记录在相应的位置。
映射工具箱提供了一个使用web图功能。
使用webmap
在浏览器中打开一个web地图。
wm = webmap (“公开街道地图”);
作为参考,MathWorks在地图上标记。
mwLat = 42.299827;mwLon = -71.350273;name =“MathWorks”;iconDir = fullfile (matlabroot,“工具箱”,matlab的,“图标”);iconFilename = fullfile (iconDir,“matlabicon.gif”);wmmarker (mwLat mwLon,“FeatureName”、名称、“图标”,iconFilename);
颜色对应的列表生成速度垃圾箱使用秋天
colormap。这就造成了[nBins x 3]
矩阵与RGB值为每一个垃圾箱。
颜色=秋天(nBins);
画一条线在webmap使用地理形状向量。形状向量的每个元素对应于一个不连续的线段被速度值。这些元素匹配颜色的元素创建列表。
wmline(年代,“颜色”、颜色、“宽度”5);
缩放地图的路线。
wmzoom (16);
最后的展示提供了一个可视化表示整个路线的位置和速度。设备显然是更慢而在停车场和旅行期间将比在马上。
清理
关闭位置传感器和明确的mobiledev
。
m。PositionSensorEnabled = 0;清晰的米;