You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的simple_kml库正确设置KML形状颜色?

问题解决方法

核心问题两个:

  • 颜色格式不匹配:KML与HTML的颜色编码顺序完全相反
  • 样式类型错误:折线应该用线样式而非多边形填充样式

1. 颜色格式差异说明

HTML颜色是#RRGGBB(红-绿-蓝),但KML的颜色规则是AABBGGRR(透明度-蓝-绿-红),其中透明度可选(默认FF表示完全不透明)。你传入的#ec0909是HTML红色(红=ec,绿=09,蓝=09),直接赋值会被KML解析为蓝=ec,绿=09,红=09,导致颜色错乱。

2. 样式类型错误说明

你创建的是linestring(折线),但设置了polystyle.color——这是多边形的填充样式,对折线无效,应该改用linestyle.color来控制折线颜色。


修正后的代码

ls = kml.newlinestring(name="Polyline")
ls.coords = [(latlng['lng'], latlng['lat']) for latlng in shape['coordinates']]
ls.description = shape['info_box']
color_code = "#ec0909"
print(f"THE COLOR IS {color_code}") #returns #ec0909

# 把HTML颜色转换成KML格式
hex_color = color_code.lstrip('#')
rr, gg, bb = hex_color[:2], hex_color[2:4], hex_color[4:]
# 拼接成KML要求的FFBBGGRR(FF=完全不透明)
kml_color = f"FF{bb}{gg}{rr}"

# 折线用linestyle设置颜色,同时可调整线宽
ls.style.linestyle.color = kml_color
ls.style.linestyle.width = 3  # 可选,设置折线粗细

内容的提问来源于stack exchange,提问作者Ahmed Wagdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:06:26