主要内容

用地理数据创建地图显示

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

特别地,这个例子说明了如何

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

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

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

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

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

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

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

阅读美国的州边界从usastatehi.shp与Mapping Toolbox™软件一起包含的文件。州的边界用经纬度表示。

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

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

在地图坐标轴上显示多边形地理矢量数据。由于地理范围在美国,你可以使用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与Mapping Toolbox™软件一起包含的文件。该文件包含美国马萨诸塞州波士顿部分地区的地理点特征的纬度和经度坐标。使用readgeotable函数读取GPX文件并返回一个地理空间表,其中每个点及其属性对应一行。

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

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

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

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

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

找出马萨诸塞州的州边界。

stateName =“麻省”;马=州(strcmp ({states.Name}, stateName));

使用usamap为马萨诸塞州周围地区建立地图坐标轴。通过设置画面的颜色给海洋上色。使用。显示州边界并突出显示马萨诸塞州geoshow将地理数据显示到地图轴上。由于GPX路由是存储在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];朗= [route.Shape.Longitude;placenames.Shape.Longitude];[latlim, lonlim] = geoquadpt(纬度、经度);[latlim, lonlim] = bufgeoquad (latlim lonlim, 0.05, 0.05);

用新的限制构造一个地图轴,并显示地理数据。

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

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

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

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

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

例7:显示地理栅格数据

在地图轴上显示RGB图像。映射的限制被设置为空间引用对象定义的限制,R.这些数据的坐标用经纬度表示。

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

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

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

lat = [route.Shape。纬度的placenames.Shape。纬度的R.LatitudeLimits];朗= [route.Shape。经度placenames.Shape。经度的R.LongitudeLimits];[latlim, lonlim] = geoquadpt(纬度、经度);
图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) title(波士顿概况和地理矢量数据

例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(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),“父”pltm (latlim([1 2 2 1 1]),lonlim([2 2 1 1 2]),...“颜色”“红色”“线宽”2)标题(ax, {titleText,'with Scale Ruler, North Arrow, and Inset Map'的用法和样例:})

数据集信息

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

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

另请参阅

|||||