Zh-hans:Node
Jump to navigation
Jump to search
节点是OpenStreetMap数据模型的核心要素之一。它由空间中的一个点构成,通过其纬度、经度以及节点ID来定义。
第三个可选维度(高度)也可包含在内:通过ele键(即“高程”)。节点也可以被定义为某个layer=*或level=*的一部分,用于表示某个要素是在其上方或下方通过——例如在桥梁上。
节点可用于定义独立的点状要素,但它们也常常用于定义路径的形状与走向。
截至2020年9月,OpenStreetMap包含了超过70亿个节点。
点状要素
节点可以单独使用以定义点状要素。在这种用法中,节点通常至少带有一个标签来定义其用途。节点可以带有多个标签,并且/或者是某个关系的一部分。例如,一个电话亭可以简单地标记为amenity=telephone,也可以额外添加operator=*标签。
路径中的节点
- 更多信息:路径
许多节点会构成一条或多条路径的一部分,用于定义路径的形状或“走向”。
当路径在同一高度相交时,两条路径必须共享一个节点(例如道路交叉口)。如果公路或铁路以不同高度交叉且互不相连,则它们不应共享节点(例如带有bridge=*的公路交叉口)。当路径在不同高度交叉时,应使用不同的layer=*或level=*值进行标记,或者使用location=*标记为“地上”或“地下”。此规则有一些例外情况,例如穿越水坝的道路,根据当前定义,必须与水坝所跨越的水道共享一个节点。
路径上的某些节点也可以带有标签。例如:
highway=crossing+crossing=*用于在highway=*上定义一个行人过街点。natural=tree用于标识barrier=hedge上的一棵孤树。entrance=*用于标识building=*的一个入口。
数据结构
- 有关此主题的更多详细信息、请参阅 Rails port/Database schema#Nodes。
| 名称 | 值 | 描述 | |
|---|---|---|---|
| id | 64位整数 ≥ 1 |
节点ID在节点之间是唯一的。(但是,一个路径或关系可能拥有与某个节点相同的ID编号。)编辑器可能会临时将节点ID保存为负数,表示这些ID尚未保存到服务器。服务器上的节点ID是持久不变的,这意味着现有节点被分配的ID在每次数据添加或修正时都不会改变。已删除的节点ID不得重复使用,除非之前的节点被恢复。 | |
| lat | 十进制数 ≥ −90.0000000 且 ≤ 90.0000000 保留7位小数 |
使用标准WGS84投影的纬度坐标(北纬为正)。某些应用程序可能不接受超出±85度的纬度值,具体取决于所使用的投影。 | 不要使用IEEE 32位浮点数数据类型,因为对于最高经度值,它仅能精确到大约5位小数。 Rails port使用的一种32位方法是将坐标(以度为单位)乘以1E7并四舍五入后取整:这样可以将所有绝对带符号坐标覆盖在±214.7483647度范围内,即最大差值为429.4967295度,略超出实际所需范围。 对于计算投影,中间结果需要使用IEEE 64位浮点数。 坐标(以度为单位)保留7位小数意味着经度方向的最大误差为赤道上±5.56595毫米,这使得构建厘米级精度的地图成为可能。如果仅保留5位小数,地图数据的精度将仅为米级,会导致重要物体(如建筑物)的形状发生显著变化,或者道路出现大量锯齿状或角度失真。 |
| lon | 十进制数 ≥ −180.0000000 且 ≤ 180.0000000 保留7位小数 |
使用标准WGS84投影的经度坐标(本初子午线以东为正)。注意,地理极点正好位于纬度±90度,但在这种情况下,经度将设置为该范围内的任意值。 | |
| 标签 | 一组键/值对,键具有唯一性 | 标记指南请参见地图要素。 | |
示例
<node id="25496583" lat="51.5173639" lon="-0.140043" version="1" changeset="203496" user="80n" uid="1238" visible="true" timestamp="2007-01-28T11:40:26Z">
<tag k="highway" v="traffic_signals"/>
</node>
特殊情况
| ||||||||||||||||||