[英]Sharpkml insert Icon in Folder
我想使用 Sharpkml 在文件夾中插入圖標並得到這樣的結果 klm:
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Doc</name>
<Folder>
<name>fol1</name>
<Icon>
<href>green.png</href>
</Icon>
</Folder>
</Document>
</kml>
但是找不到辦法。 你可以幫幫我嗎?
Kml kml = new Kml();
kml.AddNamespacePrefix(KmlNamespaces.GX22Prefix, KmlNamespaces.GX22Namespace);
var document = new Document();
document.Name = "Doc";
kml.Feature = document;
var folder1 = new Folder();
folder1.Name = "fol1";
document.AddFeature(folder1);
找到一種變體,它可能與 ListStyle 有關。
Kml kml = new Kml();
kml.AddNamespacePrefix(KmlNamespaces.GX22Prefix, KmlNamespaces.GX22Namespace);
var document = new Document();
document.Name = "Doc";
kml.Feature = document;
var style_f = new Style();
style_f.Id = "fol";
var liststyle_f = new ListStyle();
var itemicon_f = new ItemIcon();
itemicon_f.State = ItemIconStates.Open | ItemIconStates.Closed;
itemicon_f.Href = new Uri("green.png", UriKind.Relative);
liststyle_f.AddItemIcon(itemicon_f);
style_f.List = liststyle_f;
document.AddStyle(style_f);
var folder1 = new Folder();
folder1.Name = "fol1";
folder1.StyleUrl = new Uri("#fol", UriKind.Relative);
document.AddFeature(folder1);
var kml_file = @"C:\Users\user\Documents\kml_file.kml";
KmlFile kmlfile = KmlFile.Create(kml, false);
using (var stream = System.IO.File.OpenWrite(kml_file))
{
kmlfile.Save(stream);
}
結果:
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Doc</name>
<Style id="fol">
<ListStyle>
<ItemIcon>
<state>open closed</state>
<href>green.png</href>
</ItemIcon>
</ListStyle>
</Style>
<Folder>
<name>fol1</name>
<styleUrl>#fol</styleUrl>
</Folder>
</Document>
</kml>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.