2

VB (VS2010) の SharpKML ライブラリを使用して、目印ごとにカスタム アイコンを含む kml ファイルを作成できます。目印はループで作成され、目印ごとにアイコンの見出しプロパティを設定したいと考えています。

'Define the style for the icon
Dim kmlStyle As New SharpKml.Dom.Style
kmlStyle.Id = "ShipIcon"
kmlStyle.Icon = New SharpKml.Dom.IconStyle
kmlStyle.Icon.Icon = New SharpKml.Dom.IconStyle.IconLink(New System.Uri("http://www.mysite.com/mapfiles/ship4.png")) 
kmlStyle.Icon.Scale = 1

Poscommand.CommandText = "SELECT * FROM Ships"
PosReader = Poscommand.ExecuteReader()

While PosReader.Read()
   'Add placemark for position
   kmlPosPoint = New SharpKml.Dom.Point
   kmlPosPoint.Coordinate = New SharpKml.Base.Vector(PosReader("Lat"), PosReader("Lon"))
   kmlPosPlaceMark = New SharpKml.Dom.Placemark
   kmlPosPlaceMark.Geometry = kmlPosPoint
   kmlPosPlaceMark.Name = "My Name"
   kmlPosPlaceMark.StyleUrl = New System.Uri("#ShipIcon", UriKind.Relative)
   'SET icon.heading HERE???  How to access icon heading property for this placemark only???
End While

SharpKML を使用して個々の目印のアイコン見出しを設定するのを手伝ってくれる人はいますか?

4

1 に答える 1

1

見出しは、実際には IconStyle のプロパティであり、Icon ではありません (Icon は IconStyle の子プロパティであり、アイコン イメージへの URL のみを指定します。

上記のコードでは、(メモリから)次のようになります。

kmlStyle.Icon.Heading = 90;

すべてのアイテムに共通のスタイルを使用しているため、ループ内で次のようにスタイルの一部だけをオーバーライドできると思います (テストした場合は結果を投稿してください)。

kmlPosPlaceMark.StyleUrl = New System.Uri("#ShipIcon", UriKind.Relative);
Style s = new Style();
s.Icon = new IconStyle();
s.Icon.Heading = 90;
kmlPosPlaceMark.StyleSelector = s;

それがうまくいかない場合は、目印ごとにスタイルを作成して設定する必要があるかもしれませんが、そうではないと確信しています。繰り返しますが、投稿して、あなたがどのように理解しているかをお知らせください.

于 2013-01-29T15:19:31.287 に答える