locked
Отобразить места на карте из JSON RRS feed

  • Вопрос

  • Такой вопрос, я получаю данные о местоположении объекта из Json, в ответе есть параметры latutude и longitude.

                var response = CategoryField.ExecuteAsync<AttractionCategoryField>(request, (restResponse) =>
                {
                    AttractionCategoryItems.ItemsSource = restResponse.Data.result;
    
    
                });


    С отображением 1 точки никаких проблем не возникает, я выбираю данные из списка при выборе объекта

            private void AttractionCategoryItems_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                New_Result data = AttractionCategoryItems.SelectedItem as New_Result;
    
                NavigationService.Navigate(new Uri("/ObjectProperties.xaml?latitude=" + data.Lat + "&longitude=" + data.Lon, UriKind.Relative));
            }

    и отображаю на карте.

    Вопрос в том, как отобразить все точки на карте сразу.

    Так как пока новичок в c#, буду благодарен за подробный ответ, спасибо!

    30 апреля 2014 г. 9:48

Ответы

  • Ответ оказался крайне прост:

     var response = CategoryField.ExecuteAsync<AttractionCategoryField>(request, (restResponse) =>
                {
                    foreach (var item in restResponse.Data.result)
    
    //добавляем маркер к каждой точке на карте
    
                      {
                          pushPin.GeoCoordinate = new GeoCoordinate(item.Lat,item.Lon);
                          ImageBrush ib = new ImageBrush();
                          ib.ImageSource = new BitmapImage(new Uri(@"PushPin.png", UriKind.Relative));
                          pushPin.Background = ib;
                          MapOverlay overlay_new = new MapOverlay
                          {
                              GeoCoordinate = pushPin.GeoCoordinate,
                              Content = new Ellipse
                              {
                                  Fill = ib,
                                  Width = 50,
                                  Height = 50
                              }
                          };
                          MapLayer layer_new = new MapLayer();
                          layer_new.Add(overlay_new);
    
                          MyAllObject.Layers.Add(layer_new);
                      }
                 
    
    
                });

    10 июня 2014 г. 4:45