2013-11-27 3 views
-1

Мне удалось получить мою услугу wcf от http://kailun92wcf.cloudapp.net/Service1.svc, однако мне нужна помощь, чтобы ее использовать и получить xCoord и yCoord, чтобы построить ее на моей карте. Мне удалось получить имя, но я застрял в вызове xCoord и yCoord из службы wcf.получить координаты из wcf service

private void polyc_Checked(object sender, RoutedEventArgs e) 
    { 
     var service = new Service1Client(); 

     service.getRecommendPlaceAsync(new getRecommendPlaceRequest { activityId = 2 }); 
     service.getRecommendPlaceCompleted += new EventHandler<MyCloudService.getRecommendPlaceCompletedEventArgs>(RecommendedPlaceRequestComplete); 
    } 

    void RecommendedPlaceRequestComplete(object sender, MyCloudService.getRecommendPlaceCompletedEventArgs e) 
    { 
     if (e.Error == null) 
     { 
      var result = String.Join(",", (from place in e.Result.getRecommendPlaceResult select place.Name).ToArray()); 
      MessageBox.Show(result); 

     } 
     else 
     { 
      MessageBox.Show("An error occured: " + e.Error.Message); 
     } 

     GraphicsLayer graphicsLayer = map.Layers["polyCoords"] as GraphicsLayer; 


     foreach (Classes.Places location in data) 
     { 

      MapPoint point = new MapPoint(Convert.ToDouble(location.XCoord), Convert.ToDouble(location.YCoord)); 
      mcp.Add(location); 
      ESRI.ArcGIS.Client.Graphic graphic = new ESRI.ArcGIS.Client.Graphic() { Geometry = point, Symbol = PolyMarkerSymbol }; 
      graphicsLayer.Graphics.Add(graphic); 
     } 

    } 

ответ

1

Вы можете получить список координат из того же набора результатов, которые вы запрашиваете свои топонимы из

вместо

var result = String.Join(",", (from place in e.Result.getRecommendPlaceResult select place.Name).ToArray()); 

Создать структуру классов, таких как

public class Points 
{ 
    public decimal XCoordinate { get; set; } 
    public decimal YCoordinate { get; set; } 
} 

затем

var coordinates = from place in e.Result.getRecommendPlaceResult select new Points {XCoordinate = place.XCoord, YCoordinate = place.YCoord}; 

Координаты должны теперь иметь свой список.

Вы, вероятно, просто лучше иметь список мест, таких как

var places = from place in e.Result.getRecommendPlaceResult select place; 

, то вы можете получить любое свойство из элементов в списке

foreach (var place in places) 
      { 
       MessageBox.Show(string.Format("Place: {0} at {1}, {2}", place.Name, place.XCoord, place.YCoord)); 
      } 
+0

искренне поблагодарить вас =) – NoobieNeedHelp