2011-08-01 4 views
0

Webサーバーからxmlを解析し、緯度/経度のニックネームや画像などのユーザー情報を取得し、それらをマップにバインドするタスクがありました。 。私は、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です。あなたは、単にGeoCoordinatedoubleをキャストすることはできません、それは確かに別々のを持っている意味がありません。緯度と経度の両方のためのGeoCoordinate

だから、あなたが何をする必要があるかだけでダブルスとして緯度と経度を読み出し、その後、それに基づいてGeoCoordinateを作成することです。

使用Double.TryParse変換を処理するための(としてすべての値を最初にstringとして読み込んでいます)

関連する問題