主要内容

使用地理数据创建地图显示

有许多地理空间数据集包含以度数为单位的经纬度坐标的数据。此示例演示了如何导入具有经纬度坐标的地理数据、在地图显示中显示地理数据以及如何自定义显示。

特别地,这个例子说明了如何做到这一点

  • 导入特定的地理矢量和光栅数据集

  • 创建地图显示和可视化数据

  • 在单一地图显示中显示多个数据集

  • 用标尺和北箭头自定义地图显示

  • 用嵌入的地图自定义地图显示

示例1:导入多边形地理矢量数据

地理矢量数据可以以各种不同的格式存储,例如shapefile和GPS Exchange (GPX)格式。此示例从shapefile导入多边形地理矢量数据。shapefile中的顶点可以是地理坐标(纬度和经度),也可以是投影坐标参考系统。

阅读美国各州的边界usastatehi.shp映射工具箱™软件中包含的文件。州界用经度和纬度表示。

状态= shaperead(“usastatehi.shp”“UseGeoCoords”,真正的);

示例2:显示多边形地理矢量数据

将多边形地理矢量数据显示到axesm基于的地图(以前称为地图轴)。由于地理范围在美国,您可以使用usamap设置地图。使用geoshow在地图上投射和显示地理数据。通过设置框架的面部颜色,在背景中显示海洋色。

图ax = usamap(“本土”);oceanColor = [0.3010 0.7450 0.9330];landColor = [0.9290 0.6940 0.1250];setm (ax,“FFaceColor”oceanColor) geoshow(州,“FaceColor”landColor)标题({“毗连的美国州界”...“多边形地理矢量数据”})

示例3:导入点和线地理矢量数据

导入点地理矢量数据boston_placenames.gpx映射工具箱™软件中包含的文件。该文件包含美国马萨诸塞州波士顿部分地区地理点特征的经纬度坐标。使用readgeotable函数读取GPX文件并返回一个地理空间表,其中每个点及其属性对应一行。

地名= readgeotable(“boston_placenames.gpx”);

中导入线向量数据sample_route.gpx映射工具箱™软件中包含的文件。该文件包含从波士顿洛根国际机场到美国马萨诸塞州纳蒂克的MathWorks公司的GPS路线的经纬度坐标。使用readgeotable函数读取GPX文件并返回包含路线上每个点的地理空间表。

路由= readgeotable(“sample_route.gpx”);

示例4:显示点和线地理矢量数据

控件中显示地理矢量数据axesm该地图以马萨诸塞州为中心,使用的数据来自各州边界和GPX文件。所有这些数据集的坐标都是经纬度。

找出马萨诸塞州的州界。

stateName =“麻省”;ma = states(strcmp({states. name},stateName));

使用usamap绘制马萨诸塞州周边地区的地图。通过设置框架的面部颜色为海洋着色。显示州边界并通过使用突出显示马萨诸塞州geoshow在地图上显示地理数据。因为GPX路由是存储在a中的点的集合geopointshape的纬度和经度坐标geoshow以直线的形式显示路由。

图ax = usamap(“马”);maColor = [0.4660 0.6740 0.1880];setm (ax,“FFaceColor”oceanColor) geoshow(州,“FaceColor”landColor) geoshow(马“FaceColor”maColor) geoshow(地名);geoshow (route.Shape.Latitude route.Shape.Longitude);标题({“马萨诸塞州及周边地区”“地名和路线”})

示例5:根据数据范围设置经纬度限制

通过使用地名和路线数据的范围计算地图的新纬度和经度限制,放大地图。将极限扩大0.05度。

lat = [route.Shape.Latitude;placenames.Shape.Latitude];lon = [route.Shape.Longitude;placenames.Shape.Longitude];[latlim,lonlim] = geoquadpt(lat,lon);[latlim,lonlim] = bufgeoquad(latlim,lonlim,0.05,0.05);

构造一个axesm基于地图的新限制和显示的地理数据。

图ax = usamap(latlim,lonlim);setm (ax,“FFaceColor”oceanColor) geoshow(马“FaceColor”geoshow(route.Shape.Latitude,route.Shape.Longitude)“地名与路线特写”

示例6:导入地理光栅数据

地理栅格数据可以以各种不同的格式存储,例如GeoTIFF、Esri Grid、DTED和ENVI格式。要读取这些格式的数据,请使用readgeoraster函数。

要读取与世界文件关联的图像,请使用imread而且worldfileread函数来代替。使用imread读取图像和worldfileread读取世界文件并构造空间引用对象。对于本例,导入马萨诸塞州波士顿周围地区的数据。图像的坐标是经纬度。

文件名=“boston_ovr.jpg”;RGB = imread(文件名);R = worldfileread(getworldfilename(filename),“地理”、大小(RGB));

示例7:显示地理光栅数据

显示RGB图像到axesm的地图。地图的极限设置为空间引用对象定义的极限,R.数据的坐标是经纬度。

图ax = usamap(RGB,R);setm (ax,“MLabelLocation”, 0.05,“PLabelLocation”, 0.05,...“MLabelRound”2,“PLabelRound”-2) geoshow(RGB,R) title(“波士顿概述”

示例8:显示地理矢量和光栅数据

您可以在单一地图显示中显示光栅和矢量数据。因为所有这些数据集的坐标都是经纬度,所以使用geoshow在单一地图显示中显示它们。根据路由、地名和概览图像的限制设置新的限制。

lat = [route.Shape.]纬度的placenames.Shape。纬度的R.LatitudeLimits];lon = [route.Shape]。经度placenames.Shape。经度的R.LongitudeLimits];[latlim,lonlim] = geoquadpt(lat,lon);
图ax = usamap(latlim,lonlim);setm (ax,“GColor”“k”“PLabelLocation”, 0.05,“PLineLocation”,0.05) geoshow(RGB,R) geoshow(ma.Lat,ma.Lon,“线宽”2,“颜色”“y”geoshow(route.Shape.Latitude,route.Shape.Longitude)“波士顿概况和地理矢量数据”

例9:使用比例尺自定义地图显示

通过包含比例尺自定义地图显示。比例尺是一种图形对象,它以投影的正确大小显示地面上的距离。这个例子说明了如何构造一个以国际英里为单位显示水平距离的标尺。

方法计算马萨诸塞州的经纬度限制,并将限制扩展0.05度bufgeoquad函数。

[latlim,lonlim] = geoquadline(ma.Lat,ma.Lon);[latlim,lonlim] = bufgeoquad(latlim,lonlim,0.05,0.05);

在地图上显示州边界、地名、路线和概览图像。

图ax = usamap(latlim,lonlim);setm (ax,“FFaceColor”oceanColor) geoshow(州,“FaceColor”landColor) geoshow(马“线宽”, 1.5,“FaceColor”geoshow(RGB,R) geoshow(地名)geoshow(route.Shape.Latitude,route.Shape.Longitude) titleText =“马萨诸塞州及周边地区”;标题(titleText)

插入刻度尺。方法可以确定比例尺的位置ginput函数如下所示:

[xLoc,yLoc] = ginput(1);

前面选择的位置设置在下面。

xLoc = -127800;yLoc = 5014700;scaleruler (“单位”“小姐”“RulerStyle”“补丁”...“XLoc”xLoc,“YLoc”, yLoc);标题({titleText,“带比例尺”})

例10:使用北箭头自定义地图显示

通过添加一个北箭头自定义地图。北箭头是指地理上的北极的图形元素。

使用纬度和经度值来定位北箭头。

northArrowLat = 42.5;northArrowLon = -70.25;northarrow (“纬度”northArrowLat,“经”, northArrowLon);标题({titleText,“带刻度尺和北箭”})

例11:使用嵌入的地图自定义地图显示

通过添加嵌入地图自定义地图。嵌套地图是大地图中的小地图,它使您能够可视化主地图的更大地理区域。为周围区域创建一个地图作为嵌入地图。使用函数用于包含和定位嵌入的地图。在附图中:

  • 显示周围区域的州边界

  • 绘制一个红框来显示主地图的范围

H2 =坐标轴(“位置”,[0.15 0.6 0.2 0.2],“可见”“关闭”);usamap ({“爸爸”“我”}) plabelmlabelsetm (h2,“FFaceColor”' w ') geoshow(州、“FaceColor”,[0.9 0.9 0.9],“父”,h2) plotm(latlim([1 2 2 1 1]),lonlim([2 2 1 1 2]),...“颜色”“红色”“线宽”2)标题(ax, {titleText,“带比例尺,北箭头和嵌入地图”})

数据集信息

该文件boston_placenames.gpx来自马萨诸塞州联邦地理信息局(MassGIS),技术和安全服务执行办公室。有关数据集的更多信息,请使用该命令类型boston_placenames_gpx.txt

该文件boston_ovr.jpg包括GeoEye版权所有的材料,版权所有。GeoEye于2013年1月29日并入DigitalGlobe公司。有关数据集的更多信息,请使用该命令类型boston_ovr.txt

另请参阅

|||||