2011-08-01 2 views
0

웹 서버에서 xml을 구문 분석하고 lat/long 닉네임과 이미지를 포함한 사용자 정보를 얻은 다음지도에 바인딩합니다 (많은 정보가 있음) . WebClient와 XDocument를 사용하여 구문 분석 작업을합니다. 위도/경도의 유형은 무엇이며지도에 바인딩하는 방법은 무엇입니까?xml 구문 분석 wp7에서지도에 위도/경도 바인딩

 void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
    { 
     using (var reader = new StreamReader(e.Result)) 
     { 
      // string[] _elements = { "one", "two", "three" }; 
      int[] counter = { 1 }; 
      string s = reader.ReadToEnd(); 
      Stream str = e.Result; 
      str.Position = 0; 
      XDocument xdoc = XDocument.Load(str); 

      var data = from query in xdoc.Descendants("position") 
         select new mapping 
         { 
        //   color = counter[0]++, 
          album = (string)query.Element("album"), 
          track = (string)query.Element("track"), 
          artist = (string)query.Element("artist"), 
          nickname = (string)query.Element("user_info").Element("nickname"), 
          pos_lat = (GeoCoordinate)query.Element("lat"), 

         }; 
      // lb1.ItemsSource = data; 
    //  listbox1.ItemsSource = data; 
     } 
    } 


    public class mapping 
    { 
     public int index { get; set; } 
     public string album { get; set; } 
     public string track { get; set; } 
     public string artist { get; set; } 
     public GeoCoordinate pos_lat { get; set; } 
     public GeoCoordinate pos_lon { get; set; } 
     public string nickname { get; set; } 
    } 


<Microsoft_Phone_Controls_Maps:Map Height="427" HorizontalAlignment="Left" Margin="12,6,0,0" Name="map1" VerticalAlignment="Top" Width="438" /> 

답변

1

나는 GeoCoordinate을 오해한다고 생각합니다. GeoCoordinate은 위도, 경도 및 일부 other geographical location properties을 나타내는 좌표입니다.

값 (당신이 밖으로 읽고 s는 것은 위도 나 경도 중 하나를 대표하는하는 double입니다. 당신은 단순히 doubleGeoCoordinate으로 캐스팅 할 수 없으며, 그것은 확실히 의미가 별도을 가지고하지 않습니다 위도와 경도 모두 GeoCoordinate.

그래서 당신이해야 할 일을 그냥 기반으로 GeoCoordinate를 생성 한 후 복식으로 위도와 경도를 판독하는 것입니다.

변환을 처리하기위한 사용 Double.TryParse (로 처음에는 string으로 모든 값을 읽습니다.)