在simplekml中使用sharedstyle时更改单点的样式

时间:2014-03-07 16:19:48

标签: python kml

我正在使用simplekml来绘制一些数据。

因为我可以有很多要点我正在使用sharedstyle,但问题是我不能在每个点之间设置任何样式(如图标比例或balloosstyle文本)。

所以,我有我的共享风格

kml = simplekml.Kml()
    fol = kml.newfolder(name="Eventos")
    sharedstyle = simplekml.Style()
    sharedstyle.labelstyle.color = 'ffffffff'
    sharedstyle.iconstyle.icon.href = 'http://maps.google.com/mapfiles/kml/shapes/target.png'
    sharedstyle.iconstyle.color = 'ff0000ff'
    sharedstyle.balloonstyle.bgcolor = simplekml.Color.lightgreen
    sharedstyle.balloonstyle.textcolor = simplekml.Color.rgb(0, 0, 255)

我在循环中读取数据,并且我需要创建此方法所需的每个点

def add_to_kml(folder, event, style):

    coord = (event.lon, event.lat)
    label = event.date.isoformat()
    pnt = folder.newpoint(name="{0}".format(label), coords=[coord])
    pnt.style = style
    pnt.style.iconstyle.scale = event.scale
    pnt.style.balloonstyle.text = "{0}, \n {1}".format(event.label, event.geo_ref)

但是,绘制的每个点都有相同的图标比例和balloonstyle.text(对应于最后添加的点)

有没有办法在使用共享样式时修改某些样式数据?

1 个答案:

答案 0 :(得分:0)

仅在非常有限的意义上。样式不是分层的,它们互相替换。但...

balloonstyle 文本可以使用引用其引用的元素的变量($[name], $[description], $[address], $[id], $[Snippet])。所以你可以把你的个人信息放到例如描述并在气球中使用它。

希望它有所帮助!