MapPolyline没有被绘制

时间:2012-11-29 12:25:03

标签: c# bing-maps windows-phone-8

我正在尝试在我的地图中使用MapPolyLine来显示实时路线,希望它会移动/缩放this time。事情是这条线没有在地图上显示,我找不到任何编程错误:

C#

MapLayer pathLayer;

//Constructor
 pathLayer = new MapLayer();
 MapPolyline line = new MapPolyline();
 line.StrokeColor = Colors.Red;
 line.StrokeThickness = 10;
 //line.Path.Add(several points); Tested, no effect
 MapOverlay overlay = new MapOverlay();
 overlay.Content = line;
 //overlay.GeoCoordinate = new GeoCoordinate(0,0); Tested, no effect
 //overlay.PositionOrigin = new Point(0.0, 1.0); Tested, no effect
 pathLayer.Add(overlay);
 MyMap.Layers.Add(pathLayer);


void geolocator_PositionChanged(Geolocator sender, PositionChangedEventArgs args)
{
  MapPolyline line = pathLayer.First(TrackPath).Content as MapPolyline;
  line.Path.Add(args.Position.Coordinate); // Checked values, line.Path adds them correctly
}

编辑:新信息。尝试使用XAML添加模拟器时,模拟器显示错误,模拟器将地图顶部的类名称显示为图形故障:

Emulator error on top, XAML on the right

2 个答案:

答案 0 :(得分:9)

MapPolylinesMapPolygons应添加到MapElements集合中...而不是MapLayerMapOverlay

你应该能够让这个例子适合你。

        MapPolyline line = new MapPolyline();
        line.StrokeColor = Colors.Red;
        line.StrokeThickness = 10;
        line.Path.Add(new GeoCoordinate(47.6602, -122.098358));
        line.Path.Add(new GeoCoordinate(47.561482, -122.071544));
        MyMap.MapElements.Add(line);

在你的GeoCoord观察者中,你必须从地图的MapElements集合中获取该行,并将新位置添加到行的路径而不是像我那样预定义。这应该是可行的。

答案 1 :(得分:0)

在Windows Phone 8.1中尝试以这种方式添加点。 " punkty"是我的收藏。

  List<BasicGeoposition> PosList = new List<BasicGeoposition>();
  foreach (var item in punkty)
  {
    PosList.Add(new BasicGeoposition()
    {
      Latitude = item.Position.Latitude,
      Longitude = item.Position.Longitude
    });
  }

  //Example of one point
  //PosList.Add(new BasicGeoposition()
  //{
  //  Latitude = 52.46479093,
  //  Longitude = 16.91743341
  //});

  MapPolyline line = new MapPolyline();
  line.StrokeColor = Colors.Red;
  line.StrokeThickness = 5;
  line.Path = new Geopath(PosList);

  myMap.MapElements.Add(line);