[DEVEXPRESS/WINFORM] BingRouteDataProvider 클래스 : CalculateRoute 메소드를 사용해 주소 사이에서 경로 계산하기
DevExpress/WinForm 2020. 6. 24. 23:48728x90
반응형
728x170
▶ MainForm.cs
using System;
using System.Collections.Generic;
using DevExpress.XtraEditors;
using DevExpress.XtraMap;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : XtraForm
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 빙 맵 키
/// </summary>
private string bingKey = "INPUT YOUR BING KEY";
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
this.bingMapDataProvider.BingKey = this.bingKey;
Load += Form_Load;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 폼 로드시 처리하기 - Form_Load(sender, e)
/// <summary>
/// 폼 로드시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void Form_Load(object sender, EventArgs e)
{
BingRouteDataProvider bingRouteDataProvider = new BingRouteDataProvider();
bingRouteDataProvider.BingKey = this.bingKey;
bingRouteDataProvider.RouteOptions.Mode = BingTravelMode.Driving;
bingRouteDataProvider.RouteOptions.RouteOptimization = BingRouteOptimization.MinimizeTime;
this.informationLayer.DataProvider = bingRouteDataProvider;
bingRouteDataProvider.RouteCalculated += bingRouteDataProvider_RouteCalculated;
bingRouteDataProvider.CalculateRoute
(
new List<RouteWaypoint>()
{
new RouteWaypoint("New York" , "Belmont Park, New York , USA"),
new RouteWaypoint("Las Vegas", "Lorenzi Park, Las Vegas, USA")
}
);
}
#endregion
#region 빙 경로 데이터 공급자 경로 계산시 처리하기 - bingRouteDataProvider_RouteCalculated(sender, e)
/// <summary>
/// 빙 경로 데이터 공급자 경로 계산시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void bingRouteDataProvider_RouteCalculated(object sender, BingRouteCalculatedEventArgs e)
{
SearchBoundingBox searchBoundingBox = e.CalculationResult.RouteResults[0].BoundingBox;
GeoPoint topLeftPoint = new GeoPoint
{
Latitude = searchBoundingBox.NorthLatitude,
Longitude = searchBoundingBox.WestLongitude
};
GeoPoint bottomRightPoint = new GeoPoint
{
Latitude = searchBoundingBox.SouthLatitude,
Longitude = searchBoundingBox.EastLongitude
};
this.mapControl.ZoomToRegion(topLeftPoint, bottomRightPoint, 0.4);
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요