2014-01-12 3 views
0

나는 응용 프로그램에서 WCF 서비스를 사용하고 있습니다.지도 노선 WCF 서비스

WCF에서 반환 된 좌표를 1로 지정할 때 선을 그립니다. 그런 다음 잘못된 경로를 그립니다. Windows Phone 7이 제대로 표시되는 동안 Polyline을 사용합니다. 아래 표시됨

내가 잘못받은 결과입니다

을 그리고 표시 할이 내가 그리는 처리하는 코드가

:

void wcl_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    try 
    { 
     if (string.IsNullOrEmpty(e.Result) || e.Error != null) 
     { 
      MessageBox.Show("Lỗi kết nối! Hãy thử lại"); 
      waitingPage.Visibility = System.Windows.Visibility.Collapsed; 
      return; 
     } 

     XuLyToaDo route = XuLyToaDo.TaoMapRoute(); 
     //Lay ds diem ve 
     string Ketqua = XuLyToaDo.DanhSachDiemVe(e.Result); 
     string[] kq = Ketqua.Split('&'); 

     //Lay thong tin toa do 
     XuLyToaDo routePushpin = XuLyToaDo.TaoMapRoute(); 
     XuLyToaDo routePolyline = XuLyToaDo.TaoMapRoute(); 
     //MessageBox.Show(kq[0]); 
     //MessageBox.Show(kq[1]); 
     //MessageBox.Show(kq[2]); 
     //Tao ds toa do 
     List<GeoCoordinate> lsToaDoPushpin = routePushpin.TaoDSToaDo(kq[0]); 
     List<GeoCoordinate> lsToaDoRoute = routePushpin.TaoDSToaDo(kq[1]); 
     // Lay ds ten duong 
     string[] MangTenDiaChi = routePushpin.TaoDSDuong(kq[2]); 
     if (lsToaDoPushpin == null) 
     { 
      MessageBox.Show("Không có thông tin"); 
      waitingPage.Visibility = System.Windows.Visibility.Collapsed; 
      return; 
     } 
     for (int i = 0; i < lsToaDoPushpin.Count - 1; i++) 
     { 
      AddRoute(lsToaDoPushpin[i], Colors.Blue); 
     } 
     //ve duong di 
     for (int i = 0; i < lsToaDoPushpin.Count - 2; i++) 
     { 
      AddRouteMap(lsToaDoPushpin[i], lsToaDoPushpin[i + 1]); 
     } 
     //ve duong di 
     //MyRouteQuery = new RouteQuery() 
     //{ 
     // TravelMode = TravelMode.Driving, 
     // Waypoints = lsToaDoRoute 

     //}; 
     //MyRouteQuery.QueryCompleted += MyRouteQuery_QueryCompleted; 
     //MyRouteQuery.QueryAsync(); 

     //Them danh sach tram 
     int k = 0; 
     foreach (GeoCoordinate geo in lsToaDoPushpin) 
     { 
      if (k == lsToaDoPushpin.Count() - 1) 
       break; 
      Pushpin pus = new Pushpin(); 
      string str = "Direc_" + k; 
      pus.Template = Maps.App.Current.Resources[str] as ControlTemplate; 
      pus.Tag = k; 
      pus.Content = k.ToString() + ". " + MangTenDiaChi[k]; 
      pus.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(pus_Tap); 
      MyMap.Layers.Add(new MapLayer() 
       { 
       new MapOverlay() 
       { 
        GeoCoordinate = geo, 
        PositionOrigin = new Point(0.5,0.5), 
        Content = pus 
       } 
       }); 
      k++; 
     } 
     MyMap.Center = lsToaDoPushpin[0]; 
     MyMap.ZoomLevel = 15; 
     waitingPage.Visibility = System.Windows.Visibility.Collapsed; 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Lỗi kết nối. Hãy thử lại!!" + ex.Message); 
    } 
} 

private void AddRouteMap(GeoCoordinate g1, GeoCoordinate g2) 
{ 
    List<GeoCoordinate> lsRoute = new List<GeoCoordinate>(); 
    lsRoute.Add(g1); 
    lsRoute.Add(g2); 

    MyRouteQuery = new RouteQuery() 
    { 
     TravelMode = TravelMode.Walking, 
     Waypoints = lsRoute 

    }; 
    MyRouteQuery.QueryCompleted += MyRouteQuery_QueryCompleted; 
    MyRouteQuery.QueryAsync(); 
} 
void MyRouteQuery_QueryCompleted(object sender, QueryCompletedEventArgs<Route> e) 
{ 

    if (e.Error == null) 
    { 

     if (MyMapRoute != null) 
      AddlstMapRoute(MyMapRoute); 
     MyRoute = e.Result; 
     MyMapRoute = new MapRoute(MyRoute); 
     MyMap.AddRoute(MyMapRoute); 

    } 
} 
private void AddlstMapRoute(MapRoute maproute) 
{ 
    lsMapRoute.Add(maproute); 
} 
private void AddRoute(GeoCoordinate geo, Color color) 
{ 

    MyMap.Layers.Add(new MapLayer() 
    { 
     new MapOverlay() 
     { 
      GeoCoordinate = geo, 
      PositionOrigin = new Point(0.5,0.5), 

      Content = new Ellipse 
      { 
       Fill = new SolidColorBrush(color), 
       Width =5, 
       Height = 5 
      } 

     } 
    }); 
} 

void pus_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
{ 
    e.Handled = true; 
    Pushpin pus = sender as Pushpin; 
    ToolTipService.SetToolTip(pus, new ToolTip() 
    { 
     DataContext = pus, 
     Style = Application.Current.Resources["CustomInfoboxStyle"] as Style 
    }); 
    MessageBox.Show(pus.Content.ToString(), "Thông tin trạm", MessageBoxButton.OK); 
} 

이것은 pl

나는이 문제를 어떻게 해결할 수 : 나는 데이터베이스를 생성 에이스?

+0

감사합니다. 도와주세요. – jvinhit

답변

0

나는 travelmode가 걷기로 설정되어 있기 때문에 google이 거기에서 걷는 것이 허용되지 않는다고 생각하는 것 같아서 다음 가능한 방법이 필요합니다. 운전 모드를 주행으로 변경하십시오.

인사말

+0

등록 정보가 없습니다. travelmode = driving! 도와주세요! – jvinhit

관련 문제