我在python中编写了一个脚本,它将使用simplekml python包将CSV文件转换为KML文件。它还没有完成,因为它需要根据我的一个数据值对我的点进行缩放和着色。现在我正在玩这个if / else只是为了看看我是否可以使用共享风格,然后编辑每个点的颜色和比例(我打算改变它以使用一系列颜色,但是现在我'我只想弄清楚哪些有效,哪些无效。我的数据有5000行,所以我想使用共享样式来保持生成的KML尽可能短,然后使用for循环来分配颜色和比例以及模式数据。
我的问题是:if / else执行,但它将共享样式图标颜色更改为浅绿色。结果是每一点都是柠檬绿。有没有办法使用共享样式,还可以编辑颜色和比例,而不会覆盖共享样式?如果我删除共享样式,颜色按预期工作,但我的KML文件很大。我对python很新,我上周才知道。所以任何帮助或提示都表示赞赏。
编辑:好像我不能做我在那里做的共享风格。我可以使用if / else来比较和分配颜色,但它只有在我摆脱共享样式时才有效。我认为这只会覆盖一切。但是,如果有办法这样做,那将使我的输出文件更小(共享样式它们大约是4mb,没有它们大约7mb,我知道将来会用于更大的数据集)。
以下是我的参考代码:
<script src="https://www.youtube.com/iframe_api"></script>
<div class="module module-home-video">
<span class="module-strip">Latest Product Video</span>
<div id="video"></div>
</div>
<script>
var player, playing = false;
function onYouTubeIframeAPIReady() {
player = new YT.Player('video', {
height: '360',
width: '640',
videoId: 'xmhtV4270NU',
events: {
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerStateChange(event) {
if(!playing){
alert('onPlay is clicked');
playing = true;
}
}
</script>
答案 0 :(得分:0)
要在simplekml中使用共享样式,您需要为每种颜色创建样式,然后根据颜色标准在点上引用其变量,在这种情况下,颜色是伤亡人数的对数。 / p>
在KML中创建多个共享样式
style1 = simplekml.Style() #creates shared style for all points
style1.iconstyle.color = 'ffff00ff' #magenta
style1.iconstyle.icon.href ='http://maps.google.com/mapfiles/kml/shapes/target.png' #can change to any desired icon URL
style1.iconstyle.scale = 1
style2 = simplekml.Style() #creates shared style for all points
style2.iconstyle.color = 'ff32cd32' #lime green
style2.iconstyle.icon.href ='http://maps.google.com/mapfiles/kml/shapes/target.png' #can change to any desired icon URL
style2.iconstyle.scale = 1
接下来,根据颜色测试
将样式指定给点if row['Casualties'] >= 5.0: # color test
pnt.style = style1 # magenta
else:
pnt.style = style2 # lime green