空间函数

空间函数允许您执行高级空间分析,并将空间文件与其他格式的数据(如文本文件或电子表格)相结合。例如,您可能有城市议会区的空间文件,以及一个包含所报告路面坑洼的纬度和经度坐标的文本文件。您可以在创建数据源时使用空间计算来联接这些文件,并分析哪个区域修复路面坑洼所花费的时间最长。

您还可以创建一个线条,用于连接起点-终点地图的两个数据点。例如,您可能有一个包含公共交通数据的电子表格,指明通勤者的行程起点和终点。您可以使用空间计算来查看通勤者所走的路径。

Tableau 中的可用空间函数

AREA

语法AREA(Spatial Polygon, 'units')
输出数字
定义返回 <spatial polygon> 的总表面积。
示例
AREA([Geometry], 'feet')
说明

支持的单位名称(计算时必须用引号括起来,例如'miles'):

  • :meters、metres、m
  • 公里:kilometers、kilometres、km
  • 英里:miles、mi
  • 英尺:feet、ft

BUFFER

语法BUFFER(Spatial Point, distance, 'units')

BUFFER(Linestring, distance, 'units')

  • :meters、metres、m
  • 公里:kilometers、kilometres、km
  • 英里:miles、mi
  • 英尺:feet、ft
输出几何图形
定义

对于空间点,返回以 <spatial point> 为中心的多边形形状,半径由 <distance><unit> 值确定。

对于线串,计算通过包含距线串的半径距离内的所有点而形成的多边形。

示例
BUFFER([Spatial Point Geometry], 25, 'mi')
BUFFER(MAKEPOINT(47.59, -122.32), 3, 'km')
BUFFER(MAKELINE(MAKEPOINT(0, 20),MAKEPOINT (30, 30)),20,'km'))
说明

支持的单位名称(计算时必须用引号括起来,例如'miles'):

  • :meters、metres、m
  • 公里:kilometers、kilometres、km
  • 英里:miles、mi
  • 英尺:feet、ft

DIFFERENCE

语法DIFFERENCE(Spatial, Spatial)
输出空间多边形
定义当第二个参数中的所有区域都是从第一个参数中重叠的区域划分出来时,计算剩余区域的部分。丢弃第二个参数中不重叠的区域。
示例
DIFFERENCE(Spatial Polygon1, Spatial Polygon2)
说明

支持空间多边形和多重多边形,不支持空间点或线。

DISTANCE

语法DISTANCE(SpatialPoint1, SpatialPoint2, 'units')
输出数字
定义以指定 <unit> 返回两点之间的距离测量值。
示例
DISTANCE([Origin Point],[Destination Point], 'km')
说明

支持的单位名称(计算时必须用引号括起来,例如'miles'):

  • :meters、metres、m
  • 公里:kilometers、kilometres、km
  • 英里:miles、mi
  • 英尺:feet、ft
数据库限制此函数只能使用实时连接创建,但在将数据源转换为数据提取的情况下将继续工作。

INTERSECTION

语法INTERSECTION (spatial, spatial)
输出多边形
定义计算并返回第二个参数中与第一个参数中区域重叠的区域部分。
示例INTERSECTION (Spatial Polygon1, Spatial Polygon2)
说明支持空间多边形和多重多边形,不支持空间点或线。

INTERSECTS

语法INTERSECTS (geometry1, geometry2)
输出布尔值
定义返回 true 或 false,指示两个几何图形是否在空间中重叠。
说明支持的组合:点/多边形、线/多边形和多边形/多边形。

MAKELINE

语法MAKELINE(SpatialPoint1, SpatialPoint2)
输出几何图形(线)
定义在两点之间生成线标记
示例
MAKELINE(MAKEPOINT(47.59, -122.32), MAKEPOINT(48.5, -123.1))
说明对于构建出发地-目的地地图很有用。

MAKEPOINT

语法MAKEPOINT(latitude, longitude, [SRID])
输出几何图形(点)
定义

将数据从 <latitude><longitude> 列转换为空间对象。

如果添加了可选的 <SRID> 参数,输入可以是其他投影地理坐标。

示例
MAKEPOINT(48.5, -123.1)
MAKEPOINT([AirportLatitude], [AirportLongitude])
MAKEPOINT([Xcoord],[Ycoord], 3493)
说明

MAKEPOINT 无法使用自动生成的纬度和经度字段。数据源必须包含本机坐标。

SRID 是一种空间参考标识符,它使用 ESPG 参考系代码(链接在新窗口中打开)来指定坐标系。如果未指定 SRID,则假设使用 WGS84,并将参数视为以度数为单位的纬度/经度。

您可以使用 MAKEPOINT 使数据源具备空间特性,以便可以使用空间联接将其与空间文件联接。有关详细信息,请参见在 Tableau 中联接空间文件

LENGTH

语法LENGTH(geometry, 'units')
输出数字
定义使用给定的 <units> 返回 <geometry> 中的一个或多个线串的大地路径长度。
示例
LENGTH([Spatial], 'metres')
说明如果 geometry 参数没有线串,则结果为 <NaN>,但允许使用其他元素。

OUTLINE

语法OUTLINE(spatial polygon)
输出几何图形
定义将多边形几何图形转换为线串。
说明

对于为轮廓创建单独的图层很有用,该图层的样式可以与填充不同。

支持多边形内的多边形。

SHAPETYPE

语法SHAPETYPE(geometry)
输出字符串
定义返回描述空间 <geometry> 结构的字符串,例如 Empty、Point、MultiPoint、LineString、MultiLinestring、Polygon、MultiPolygon、Mixed 和 unsupported。
示例
SHAPETYPE(MAKEPOINT(48.5, -123.1)) = "Point"

SYMDIFFERENCE

语法SYMDIFFERENCE(spatial, spatial)
输出几何图形
定义计算第二个参数中与第一个参数中的区域重叠的任何部分,并从两者中丢弃。返回两个参数中区域的剩余部分。
示例

SYMDIFFERENCE(Spatial Polygon1, Spatial Polygon2)

VALIDATE

语法VALIDATE(spatial geometry)
输出几何图形
定义确认空间值中几何图形的拓扑正确性。如果由于诸如面的周长与自身相交等问题而导致该值无法用于分析,则结果将为 null。如果几何图形正确,结果将是原始几何图形。
示例

UNION(VALIDATE([Geometry]))

使用空间计算

使用 MAKEPOINT 创建空间数据源

您可以使用 MAKEPOINT 使数据源具备空间特性,以便可以使用空间联接将其与空间文件联接。若要使用 MAKEPOINT,您的数据必须包含纬度和经度坐标。

  1. 打开 Tableau 并连接到一个空间数据源。
  2. 在“连接”下,单击“添加”以添加第二个非空间数据源。

    这两个数据源将添加到画布。

    提示:若要显示“联接”对话框,请双击(在 Mac 上按住 Control 单击)画布上的数据源。

  3. 将非空间数据源拖到“联接”对话框上。

  4. 单击“联接”图标。
  5. 在出现的“联接”对话框中,执行以下操作:
    • 选择一种联接类型。
    • 在“数据源”下,选择空间文件中要作为联接依据的空间字段。空间字段的旁边有一个地球图标 。
  6. 对于非空间数据源,请选择“创建联接计算”作为联接子句。

    计算应如下所示:

    MAKEPOINT(Latitude,Longitude)

  7. 选择“确定”
  8. 选择 Intersects 连接子句运算符以创建用于空间分析的数据源。

  9. 完成后,关闭“联接”对话框。

有关空间联接的详细信息,请参见在 Tableau 中联接空间文件

使用 MAKELINE 创建可视化项

在 Tableau Desktop 中,从 Tableau Public 下载“Flight Path”(飞行路线)工作簿(可在此处获得(链接在新窗口中打开))。

  1. 导航到新工作表。
  2. 选择“分析”>“创建计算字段”。
  3. 在打开的计算中,执行以下操作:
    • 将计算字段命名为“Flight Path”(飞行路线)
    • 输入以下公式

    MAKELINE(MAKEPOINT([Lat],[Lng]),MAKEPOINT([Dest Lat],[Dest Lng]))

    此公式从起点和终点城市中获取经纬度坐标,并使它们转换为用于空间分析的地理点。这些坐标用于在起点和终点之间构建两点直线。

  4. 完成后,单击“确定”
  5. 新的计算字段将出现在“数据”窗格中的“维度”下。就像其他字段一样,您可以在一个或多个可视化项中使用该字段。

  6. 从“数据”窗格中,双击“Flight Paths”(飞行路线)以将其添加到您的可视化项中,后者应会自动呈现为地图。
  7. 当线条跨越较大的广阔全球区域时,计算会自动生成弯曲的测地线。

使用 BUFFER 可视化区域

在 Tableau Desktop 中,从 Tableau Public 下载“Flight Path”(飞行路线)工作簿(可在此处获得(链接在新窗口中打开))。

  1. 导航到新工作表。
  2. 右键单击“数据”窗格,并选择“创建参数”
  3. 在打开的“参数”对话框中,设置以下选项:
    • 将参数命名为“Buffer Distance”(缓冲距离)
    • 将“数据类型”设置为“整数”
    • 将“允许的值”设置为“范围”
    • 将“最小范围”设置为 100,将“最大范围”设置为 1000,将步长大小设置为 100。

  4. 完成后,单击“确定”
  5. 此参数使我们能够自定义缓冲区的半径,范围从 100 到 1000 英里。右键单击参数并选择“显示参数”

  6. 选择“分析”>“创建计算字段”
  7. 在打开的计算中,执行以下操作:
    • 将计算字段命名为“Buffer”(缓冲区)。
    • 输入以下公式

    BUFFER(MAKEPOINT([Dest Lat],[Dest Lng]),[Buffer Distance],"miles")

    BUFFER 计算获取点空间数据并将其转换为半径以英里为单位的形状,该半径由“Buffer Distance”(缓冲距离)参数确定。

    注意:由于 BUFFER 只能与点空间数据一起使用,因此我们使用 Makepoint 将纬度和经度数据转换为点,如上例所示。

  8. 完成后,单击“确定”
  9. 新的计算字段将出现在“数据”窗格中。就像其他字段一样,您可以在一个或多个可视化项中使用该字段。

  10. 从“数据”窗格中,双击“Buffer”(缓冲区)以将其添加到您的可视化项中,后者应会自动呈现为地图。
  11. 将“Destination”(目的地)拖到“标记”卡上的“颜色”面板以完成可视化。

注意:如果视图与上图不一样,请确保“标记类型”设置为“地图”而不是“圆”。有关标记类型的详细信息,请参见更改视图中标记的类型

感谢您的反馈!您的反馈已成功提交。谢谢!