Google Earth中KML同位置重复点位前置逻辑及设置方法咨询
Google Earth 重合点位默认置顶规则与实现方案
重合点位初始排序核心规则
调整KML内Placemark排列顺序无效,是因为Google Earth对同坐标重合点位的初始渲染排序,完全不按同节点下Placemark的书写顺序判定,实际优先级从高到低如下:
- 第一优先级:要素绘制顺序属性值。带有
<gx:drawOrder>标签的点位,数值越大渲染层级越高,会直接压在数值更小的点位上方,无该标签的点位默认值为0 - 第二优先级:图标属性权重。自定义图标点位优先级高于默认图钉点位;不透明图标优先级高于半透明图标;图标尺寸更大的点位优先级高于小尺寸点位;配置了默认展开气泡的点位优先级高于无默认气泡的点位
- 第三优先级:时间属性值。带有
<TimeStamp>/<TimeSpan>时间标签的点位,时间更晚的点位会排在时间更早的点位上方 - 第四优先级:节点加载顺序。跨Folder/Document节点的点位,后被解析加载的父节点内的点位,会压在先加载节点的点位上方;同节点下的点位书写顺序在2017年后发布的Google Earth各版本(桌面端7.x、网页端9.x+)中不参与排序判定
指定点位默认置顶的可落地方案
按生效稳定性从高到低排序:
- 方案1:配置绘制顺序属性(最稳妥,全版本生效)
给需要默认置顶的Placemark添加<gx:drawOrder>标签,设置一个大于其他重合点的数值即可,其他重合点无需额外配置,示例代码如下:<Placemark> <name>指定置顶点位</name> <styleUrl>#yourPointStyle</styleUrl> <!-- 其他点位默认drawOrder为0,设置为1即可置顶,数值越大层级越高 --> <gx:drawOrder>1</gx:drawOrder> <Point> <coordinates>116.397428,39.90923,0</coordinates> </Point> </Placemark> - 方案2:调整图标权重(无扩展标签兼容方案)
给置顶点位单独配置样式,将图标尺寸比其他重合点调大1-2像素,视觉上几乎无感知,但渲染引擎会自动将大尺寸图标放在上层;也可以将其他重合点的图标透明度设为99%(不影响视觉效果),不透明的置顶点位会自动排在最前。 - 方案3:调整节点结构(无属性修改兜底方案)
把需要置顶的点位单独放在一个独立的<Folder>节点中,将该Folder节点移动到KML文件内所有其他Placemark、Folder节点的最末尾,靠后加载的节点内点位会默认压在之前加载的点位上方。
避坑提示:不要在同一父节点下通过调整Placemark的先后顺序尝试控制层级,该逻辑在当前所有主流Google Earth版本中均已失效。
内容的提问来源于stack exchange,提问作者Muccchan20
相关产品推荐
相关产品推荐

