locked
BingMapでRect領域に文字を表示したい RRS feed

  • 質問

  • VB.NETを使用
    BingMapでオリジナルのPushpinを作成
    Rect領域に文字を表示したいのですが、表示のしかたがわかりません。
    分かるかたいたら教えてください。


            pinKP = New Pushpin()
            pinKP.Location = New Location(36.53060836, 136.6102455)
            pinKP.Template = Nothing
            pinKP.Width = 124
            pinKP.Height = 64
            pinKP.PositionOrigin = PositionOrigin.BottomLeft

            Dim myPath As System.Windows.Shapes.Path = New System.Windows.Shapes.Path()
            myPath.Stroke = New System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Black)
            myPath.StrokeThickness = 1
            Dim SolidColor As SolidColorBrush = New SolidColorBrush()
            SolidColor.Color = Color.FromArgb(255, 204, 204, 255)
            myPath.Fill = SolidColor

            Dim myLine As LineGeometry = New LineGeometry()
            myLine.StartPoint = New Point(23, 0)
            myLine.EndPoint = New Point(0, 63)

            Dim myBox As RectangleGeometry = New RectangleGeometry()
            myBox.Rect = New Rect(24, 0, 100, 30)

            Dim myGroup As GeometryGroup = New GeometryGroup()
            myGroup.Children.Add(myLine)
            myGroup.Children.Add(myBox)
            myPath.Data = myGroup

            pinKP.Content = myPath
            MyLayer.Children.Add(pinKP)

    2012年2月5日 13:27

回答

  • 下記のコーデュイングで表示することができました。

            Dim myPath As System.Windows.Shapes.Path = New System.Windows.Shapes.Path()
            myPath.Stroke = New System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Black)
            myPath.StrokeThickness = 1
            Dim SolidColor As SolidColorBrush = New SolidColorBrush()
            SolidColor.Color = Color.FromArgb(255, 204, 204, 255)
            myPath.Fill = SolidColor

            Dim myLine As LineGeometry = New LineGeometry()
            myLine.StartPoint = New Point(23, 0)
            myLine.EndPoint = New Point(0, 63)

            Dim myBox As RectangleGeometry = New RectangleGeometry()
            myBox.Rect = New Rect(24, 0, 100, 30)

            Dim myGroup As GeometryGroup = New GeometryGroup()
            myGroup.Children.Add(myLine)
            myGroup.Children.Add(myBox)
            myPath.Data = myGroup

            Dim myText As TextBlock = New TextBlock()
            myText.Text = "文字できた!"
            myText.Margin = New System.Windows.Thickness(40, 5, 0, 0)

            Dim myCanvas As Canvas = New Canvas()
            myCanvas.Children.Add(myPath)
            myCanvas.Children.Add(myText)
            myCanvas.Width = 124
            myCanvas.Height = 64

            Dim wLocation As Location = New Location(36.53060836, 136.6102455)
            MyLayer.AddChild(myCanvas, wLocation, PositionOrigin.BottomLeft)

    • 回答としてマーク y-gfd 2012年2月7日 14:25
    2012年2月7日 14:24

すべての返信

  • 多少、調べた結果
    <Canvas />を使えば<TextBlock />を追加できるので、できそうな気がしますが
    xamlでは <Canvas  m:MapLayer.Position="緯度 , 経度" m:MapLayer.PositionOrigin="BottomCenter" > でいいのですが
    VB.netでは、どうコーディングしたらいいのか分かりません。

    Dim myCanvas As Canvas = New Canvas()
    myCanvasに地図の緯度・経度を設定する方法が分かりません。
    どうかよろしくお願いします。

    2012年2月7日 13:03
  • 下記のコーデュイングで表示することができました。

            Dim myPath As System.Windows.Shapes.Path = New System.Windows.Shapes.Path()
            myPath.Stroke = New System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Black)
            myPath.StrokeThickness = 1
            Dim SolidColor As SolidColorBrush = New SolidColorBrush()
            SolidColor.Color = Color.FromArgb(255, 204, 204, 255)
            myPath.Fill = SolidColor

            Dim myLine As LineGeometry = New LineGeometry()
            myLine.StartPoint = New Point(23, 0)
            myLine.EndPoint = New Point(0, 63)

            Dim myBox As RectangleGeometry = New RectangleGeometry()
            myBox.Rect = New Rect(24, 0, 100, 30)

            Dim myGroup As GeometryGroup = New GeometryGroup()
            myGroup.Children.Add(myLine)
            myGroup.Children.Add(myBox)
            myPath.Data = myGroup

            Dim myText As TextBlock = New TextBlock()
            myText.Text = "文字できた!"
            myText.Margin = New System.Windows.Thickness(40, 5, 0, 0)

            Dim myCanvas As Canvas = New Canvas()
            myCanvas.Children.Add(myPath)
            myCanvas.Children.Add(myText)
            myCanvas.Width = 124
            myCanvas.Height = 64

            Dim wLocation As Location = New Location(36.53060836, 136.6102455)
            MyLayer.AddChild(myCanvas, wLocation, PositionOrigin.BottomLeft)

    • 回答としてマーク y-gfd 2012年2月7日 14:25
    2012年2月7日 14:24