Bu makalede bence en etkileyici servislerden olan
RouteService ‘ye göz atacağız.Bu servis iki nokta arasındaki tüm yol
bilgilerini bize döndürür,Bu yolu haritaya çizdirebilir,navigasyon verilerini
geri döner,görüldüğü gibi oldukça güzel bir servis J Bu makalede basit bir giriş
yaparak sadece iki nokta arası yol çizdireceğiz sonraki makalelerimizde ise
navigasyon verilerini alalım.
RouteServis için bir tanımlama yapacak olursak:
private RouteQuery MyRouteQuery = null;
private Route MyRoute = null;
private MapRoute MyMapRoute = null;
Ana
ekranımıza bir yol çiz menü
itemi ekleyelim ve event click’inde çizdiğimiz mavi poiler ile konumumuz
arasında yol çizdirelim.
private void yol_çiz_Click(object sender, EventArgs e)
{
GeoCoordinate cor1 = new GeoCoordinate();
cor1.Latitude = 41.1108;
cor1.Longitude = 29.0374;
GeoCoordinate cor2 = new GeoCoordinate();
cor2.Latitude = 40.7629;
cor2.Longitude = 30.3617;
// Route
from current location to first search result
List<GeoCoordinate> routeCoordinates = new List<GeoCoordinate>();
routeCoordinates.Add(cor1);
routeCoordinates.Add(cor2);
CalculateRoute(routeCoordinates);
}
Route
Servisin eski BING Maps deneyimime bakarsak daha kolay olduğunu söyleye
bilirim.
CalculateRoute
Metodunda ise yine servise bir sorgu göndereceğiz ve cevab geri döndüğünde
haritamıza bir yol çizdirmiş olacağız.
private void CalculateRoute(List<GeoCoordinate> route)
{
MyRouteQuery = new RouteQuery();
MyRouteQuery.Waypoints = route;
MyRouteQuery.QueryCompleted +=
MyRouteQuery_QueryCompleted;
MyRouteQuery.QueryAsync();
}
void MyRouteQuery_QueryCompleted(object sender, QueryCompletedEventArgs<Route> e)
{
if (e.Error == null)
{
MyRoute = e.Result;
MyMapRoute = new MapRoute(MyRoute);
map1.AddRoute(MyMapRoute);
MyRouteQuery.Dispose();
}
}
Sonuç olarak:
Hiç yorum yok:
Yorum Gönder