2016-02-03 48 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的新手,我仍然在努力弄清楚這一點。

請幫幫我。

回答