2016-02-03 30 views
0

我使用Bing地图WPF控件来渲染地图。我的要求是允许用户创建一个矩形,并根据绘制矩形的坐标,我需要获取lat,long信息。如何在bing地图中创建“橡皮矩形选择”

我通过以下方式实现。

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和map的新手,我仍然在努力弄清楚这一点。

请帮帮我。

回答