你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

geo_closest_point_on_line()

适用于:✅Azure 数据资源管理器Azure Monitor✅ Sentinel

计算一行或多行上的点,该点最接近地球上给定点。

语法

geo_closest_point_on_line( 经度,纬度,lineString)

详细了解语法约定

参数

名字 类型 必选 说明
longitude real ✔️ 地理空间坐标经度值(以度为单位)。 有效值为 [-180, +180]。
latitude real ✔️ 地理空间坐标纬度值(以度为单位)。 有效值为 [-90, +90]。
lineString dynamic ✔️ GeoJSON 格式的行或多行。

退货

GeoJSON 格式中的点和行或多行上的动态数据类型的点,这是离地球上给定点最近的点。 如果坐标或 lineString 无效,查询将生成 null 结果。

注释

LineString 定义和约束

dynamic({“type”: “LineString”,“coordinates”: [[lng_1,lat_1], [lng_2,lat_2],..., [lng_N,lat_N]]})

dynamic({“type”: “MultiLineString”,“coordinates”: [[line_1, line_2, ..., line_N]]})

  • LineString 坐标数组必须至少包含两个条目。
  • 坐标 [经度, 纬度] 必须有效,其中经度是 [-180, +180] 范围内的实数,纬度是 [-90, +90] 范围内的实数。
  • 边缘长度必须小于 180 度。 选择两个顶点之间的最短边缘。

小提示

  • 使用文本 LineString 或 MultiLineString 可能会导致性能更好。

例子

以下示例查找距离北拉斯维加斯机场最近的公路上的点。

地图的屏幕截图,其中显示了北拉斯维加斯机场与特定道路之间的距离。

print point_on_line = geo_closest_point_on_line(-115.199625, 36.210419, dynamic({ "type":"LineString","coordinates":[[-115.115385,36.229195],[-115.136995,36.200366],[-115.140252,36.192470],[-115.143558,36.188523],[-115.144076,36.181954],[-115.154662,36.174483],[-115.166431,36.176388],[-115.183289,36.175007],[-115.192612,36.176736],[-115.202485,36.173439],[-115.225355,36.174365]]}))

输出

point_on_line
{ “type”: “Point”, “coordinates”: [ -115.192612, 36.176736]}

下面的示例由于 LineString 输入无效而返回 null 结果。

print isnull(geo_closest_point_on_line(1,1, dynamic({ "type":"LineString"})))

输出

结果

下面的示例由于坐标输入无效而返回 null 结果。

print result = isnull(geo_closest_point_on_line(300, 3, dynamic({ "type":"LineString","coordinates":[[1,1],[2,2]]})))

输出

结果