4

ポリラインとして表示したいGeoCoordinateオブジェクトがたくさんあります(人がたどったパスを表示するため)。

私の失敗した試み(行は表示されません):

var map = new Map(); // Nokia Maps
var layer = new MapLayer();
var overlay = new MapOverlay();
var polyline = new MapPolyline();

var gc = new GeoCoordinateCollection();
foreach(var geo in MyGeoCoordinateList) {
  gc.Add(geo);
}

polyline.Path = gc;
polyline.StrokeColors = Colors.Red;
polyline.StrokeThickness = 3;

overlay.Content = polyline;

layer.Add(overlay);
map.Layers.Add(layer);
LayoutRoot.Children.Add(map);
4

2 に答える 2

3

パス(Mike Brownの例のようにポイントを接続し、道路をたどらない)を表示するには、ポリラインをMapElementsオブジェクトに追加する必要があります。

var map = new Map(); // Nokia Maps 
var polyline = new MapPolyline();

var gc = new GeoCoordinateCollection();
foreach(var geo in MyGeoCoordinateList) {
  gc.Add(geo);
}

polyline.Path = gc;
polyline.StrokeColors = Colors.Red;
polyline.StrokeThickness = 3;

map.MapElements.Add(polyline);
LayoutRoot.Children.Add(map);

ボーナスとして、ビューポートにポイントが含まれるようにマップを設定する方法を次に示します(アニメーション付き)。

map.SetView(LocationRectangle.CreateBoundingRectangle(MyGeoCoordinateList, MapAnimationKind.Parabolic);
于 2012-11-26T16:44:04.217 に答える
2

同じことをしたかったので、すべてのウェイポイントを渡す GeoQuery を使用しました。クエリによってルートが生成され、それを UI に表示しました。

var query = new RouteQuery();
query.Waypoints = new[]
{
   new GeoCoordinate(40.7840553533410,-73.9764425910787),
   new GeoCoordinate(40.7833068308611,-73.9745997113487),
   new GeoCoordinate(40.7826229881351,-73.9730985576614),
   new GeoCoordinate(40.7821147220884,-73.9719513345183),
   new GeoCoordinate(40.7809503161196,-73.9724639235822),
   new GeoCoordinate(40.7803311395532,-73.9721954245488),
   new GeoCoordinate(40.7795640919224,-73.9729398991417),
};
query.TravelMode = TravelMode.Walking;
var result = await query.GetRouteAsync();
var mapRoute = new MapRoute(result);
mapRoute.Color = Colors.Magenta;
mainMap.AddRoute(mapRoute);

mainMap は、UI の Map コントロールです。クエリは、使用可能なパスをたどるルートを作成します (私はそれをウォーキング パスとしてマークしたので、セントラル パークの歩道を使用しました)。

于 2012-11-26T03:49:09.253 に答える