主要内容

本页采用了机器翻译。点击此处可查看英文原文。

areaint

球面或椭球面上多边形的表面积

    说明

    a = areaint(lat,lon) 计算具有地理顶点 latlon 的多边形的面积。该语法引用单位球体的坐标,并返回 a,表示多边形覆盖球体表面积的占比。

    示例

    a = areaint(lat,lon,ellipsoid) 指定了顶点的参考椭球体。该语法使用参考椭球体半长轴的单位,返回以平方单位为单位的面积。

    示例

    a = areaint(___,units) 指定顶点的角度单位。

    示例

    全部折叠

    areaint 函数的精度取决于指定顶点之间的距离。通过指定间距更小的顶点,可以计算出更精确的近似值。

    为一个 30º的月牙形区域指定顶点,每隔 30º纬度设置一个点。将表面积近似为月牙所覆盖的单位球体部分所占的比值。

    lat1 = [-90:30:90 60:-30:-60];
    lon1 = [zeros(1,7) 30*ones(1,5)];
    a1 = areaint(lat1,lon1)
    a1 = 
    0.0792
    

    为同一月牙指定顶点,这次每隔 10º纬度设置一个点。利用新的顶点,近似计算该月牙形的面积。

    lat2 = [-90:10:90 80:-10:-80];
    lon2 = [zeros(1,19) 30*ones(1,17)];
    a2 = areaint(lat2,lon2)
    a2 = 
    0.0829
    

    您可以使用 areaquad 函数计算出该月相的确切面积。30º的月面覆盖了单位球体表面积的 1/12。

    a = areaquad(90,0,-90,30)
    a = 
    0.0833
    

    将一个包含美国本土、长岛和玛莎葡萄园岛坐标的 MAT 文件加载到工作区中。使用多边形在地图上显示坐标。

    load("conus.mat","uslat","uslon")
    figure
    usamap([min(uslat) max(uslat)],[min(uslon) max(uslon)])
    geoshow(uslat,uslon,"DisplayType","polygon")

    Figure contains an axes object. The hidden axes object contains 19 objects of type patch, line, text.

    创建一个世界大地测量系统 1984 (WGS84) 参考椭球体,其长度单位为公里。然后,参照椭球坐标系,计算这些多边形的面积(单位:平方公里)。在这种情况下,areaint 函数会返回三个区域。面积最大的是代表美国本土各州的那个多边形。另外两个区域分别代表长岛和玛莎葡萄园岛的多边形。

    wgs84 = wgs84Ellipsoid("km");
    a = areaint(uslat,uslon,wgs84)
    a = 3×1
    106 ×
    
        7.9326
        0.0035
        0.0004
    
    

    输入参数

    全部折叠

    多边形顶点的纬度坐标,指定为一个数值向量。

    • 通过指定一个向量(例如 [39 45 19 39])来定义一个多边形。

    • 通过指定一个向量并使用 NaN 值(例如 [37 46 31 20 37 NaN 45 49 35 32 45 NaN 35 40 42 35])来标明多边形之间的分界点,从而定义多个多边形。lat 中的 NaN 值必须与 lon 中的 NaN 值对应。

    lat 的大小必须与 lon 的大小相匹配。

    数据类型: single | double

    多边形顶点的经度坐标,指定为一个数值向量。

    • 通过指定一个向量(例如 [39 45 19 39])来定义一个多边形。

    • 通过指定一个向量并使用 NaN 值(例如 [37 46 31 20 37 NaN 45 49 35 32 45 NaN 35 40 42 35])来标明多边形之间的分界点,从而定义多个多边形。lon 中的 NaN 值必须与 lat 中的 NaN 值对应。

    lon 的大小必须与 lat 的大小相匹配。

    数据类型: single | double

    参考椭球体,指定为 referenceSphere 对象、referenceEllipsoid 对象、oblateSpheroid 对象,或形式为 [semimajor_axis eccentricity] 的二元素向量,其中 semimajor_axis 为半长轴长度,eccentricity 为离心率。值 semimajor_axiseccentricity 必须为数据类型 double

    [1 0] 的默认值代表单位球。

    顶点的角度单位,指定为以下选项之一:

    • "degrees" - 度

    • "radians" - 弧度

    数据类型: char | string

    输出参量

    全部折叠

    多边形的表面积,以标量或向量的形式返回。

    • latlon 定义一个多边形时,a 是一个标量。

    • latlon 定义多个多边形时,a 是一个向量。向量中的每个元素都是相应多边形的面积。

    当指定 ellipsoid 参量时,面积以平方单位表示,其单位基于参考椭球体的半长轴。否则,该面积即为多边形所覆盖的单位球面所占的面积比例。

    无论多边形的顶点顺序如何,a 的元素均为正数。

    数据类型: double

    算法

    • areaint 函数利用基于格林定理的线积分方法,计算任意多边形所围成的面积。精度与多边形顶点之间的距离成反比。

    • 当您将 ellipsoid 指定为非球面椭球时,该函数会将纬度数据转换到辅助自形球上。

    替代功能

    使用 area 函数,求 geopolyshapemappolyshape 对象所表示的多边形面积。

    版本历史记录

    在 R2006a 之前推出