如何创建一个"橡胶矩形选择"在冰映射中

时间:2016-02-03 10:51:47

标签: wpf bing-maps

我使用Bing地图WPF控件来渲染地图。我的要求是允许用户创建一个矩形,并根据绘制的矩形的坐标,我需要获取纬度,长信息。

我通过以下方式实现。

 private MapPolygon boundingRectangle;

我的 mouse_leftButtonDown 代码看起来像

 Point point = e.GetPosition(this);
 this.mouseCordinates = new PointCollection();
 this.mouseCordinates.Add(point);

mouse_leftButtonUp 代码看起来像

var point = e.GetPosition(this);

this.mouseCordinates.Add(point);

var pt1 = this.mouseCordinates[0];
var pt3 = this.mouseCordinates[1];
var pt2 = new System.Windows.Point(pt3.X, pt1.Y);
var pt4 = new System.Windows.Point(pt1.X, pt3.Y);

var loc1 = this.ViewportPointToLocation(pt1);
var loc2 = this.ViewportPointToLocation(pt2);
var loc3 = this.ViewportPointToLocation(pt3);
var loc4 = this.ViewportPointToLocation(pt4);

this.Children.Remove(this.boundingRectangle);

this.boundingRectangle = new MapPolygon
{
    Stroke = new SolidColorBrush(Colors.Chocolate),
    StrokeThickness = 2,
    Locations = new LocationCollection()
    {
        loc1,
        loc2,
        loc3,
        loc4
    }
};

this.BoundingBoxCoordinates = this.boundingRectangle.Locations;
this.Children.Add(this.boundingRectangle);

所以在鼠标上,我得到了一个用户绘制的形状。但是在绘图时(我的意思是拖动鼠标,因为没有处理鼠标移动事件)用户无法在地图上看到任何内容。只有在鼠标上用户才能看到他们绘制的形状,因为在鼠标移动后添加了图层子项。

我想要的是"橡胶选择"使用鼠标拖动用户绘制形状时的矩形含义应该看到形状。它应该很生动。

由于我是WPF和地图的新手,我仍然在努力解决这个问题。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

我已经完成了Bing Maps和WPF控件的大量工作。我已经整理了一个代码示例,演示了如何使用鼠标和触摸在地图上绘制矩形。对于论坛帖子来说,样本有点太长了。我已将其上传到MSDN:https://code.msdn.microsoft.com/Draw-Rectangles-on-Bing-ce083d0e