Отображение кнопок с картой Bing для WP7 - PullRequest
1 голос
/ 03 декабря 2011

Я пытаюсь отобразить список позиций (из документа XML: с использованием чтения XML) на карте Bing с WP7, используя метод, приведенный ниже, но это не работает.Когда я попытался увидеть, что читает моя функция, я обнаружил, что она не извлекает долготу. В чем проблема?

void frloc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            ListBoxItem areaItem = null;
            StringReader wkstream = new StringReader(e.Result);
            XmlReader wkreader = XmlReader.Create(wkstream);

            string areaName = String.Empty;
            string Nom = String.Empty;
            string Photo = String.Empty;
            string Latitude = String.Empty;
            string Longitude = String.Empty;
            string Timing = String.Empty;

            while (wkreader.Read())
            {
                if (wkreader.NodeType == XmlNodeType.Element)
                {
                    switch (wkreader.Name)
                    {
                        case ("name"):
                            {
                                Nom = wkreader.ReadElementContentAsString();
                                areaItem = new ListBoxItem();
                                areaItem.Content = Nom;

                            } break;
                        case ("photo"):
                            {
                                Photo = wkreader.ReadElementContentAsString();
                                areaItem = new ListBoxItem();
                                areaItem.Content = Photo;
                            } break;
                        case ("latitude"):
                            {
                                Latitude = wkreader.ReadElementContentAsString();
                                areaItem = new ListBoxItem();
                                areaItem.Content = Latitude;
                            } break;
                        case ("longitude"):
                            {
                                Longitude = wkreader.ReadElementContentAsString();
                                areaItem = new ListBoxItem();
                                areaItem.Content = Longitude;
                            } break;

                    }
                    double lat, lon;
                    double.TryParse(Latitude, NumberStyles.Any, CultureInfo.InvariantCulture, out lat);
                    double.TryParse(Longitude, NumberStyles.Any, CultureInfo.InvariantCulture, out lon);
                    GeoCoordinate Loc = new GeoCoordinate(lat, lon);

                    Pushpin wkpin = new Pushpin();
                    Image wkpinImage = new Image();
                    wkpin.Content = Nom;
                    wkpinImage.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("http://weenek.com/markers/" + Photo, UriKind.Absolute));
                    wkpinImage.Opacity = 0.8;
                    wkpinImage.Stretch = System.Windows.Media.Stretch.None;

                    imageLayer.AddChild(wkpinImage, Loc);
                    map1.Children.Add(wkpin);

xml:

<resultat>
  <ami>
    <id>547</id>
    <nom>Hakim</nom>
    <prenom>Abidi</prenom>
    <latitude>37.01406741589469</latitude>
    <longitude>11.02375026562504</longitude>
    <date>2011-12-02</date>
    <time>01:09:35</time>
    <image>175.jpg</image>
  </ami>
</resultat>

1 Ответ

0 голосов
/ 04 декабря 2011

В вашем коде нет ничего плохого, кроме того, что вы никогда не устанавливаете координаты канцелярской кнопки.

Попробуйте добавить

wkpin.Location = Loc;
...