WPF Bing 地图 - 缩放至折线

问题描述

我创建了一个 WPF Bing 地图并添加了折线,我想设置适合折线的中心和缩放级别。像 map.fitBounds(bounds)。

MapPolyline polyline = new MapPolyline();
polyline.Stroke = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Blue);
polyline.Locations = new LocationCollection() { 
    new Location(47.6424,-122.3219),new Location(47.8424,-122.1747),new Location(47.67856,-122.130994)};

myMap.Children.Add(polyline);

解决方法

您可以从多段线的 LocationCollection 获得 IEnumerable<Location>,然后使用 SetView 的重载缩放到位置。此重载还允许您设置边距。

myMap.SetView(polyline.Locations.Cast<Location>(),new System.Windows.Thickness(0),0);

或者您可以从多段线的 LocationRect 创建一个 LocationCollection,然后使用 SetView 的另一个重载来缩放到矩形。

myMap.SetView(new LocationRect(polyline.Locations));

示例 1 - IEnumerable

MapPolyline polyline = new MapPolyline();
polyline.Stroke = new SolidColorBrush(Colors.Blue);
polyline.Locations = new LocationCollection() {
    new Location(47.6424,-122.3219),new Location(47.8424,-122.1747),new Location(47.67856,-122.130994)};
myMap.Children.Add(polyline);
myMap.SetView(polyline.Locations.Cast<Location>(),0);

示例 2 - LocationRect

MapPolyline polyline = new MapPolyline();
polyline.Stroke = new SolidColorBrush(Colors.Blue);
polyline.Locations = new LocationCollection() {
    new Location(47.6424,-122.130994)};
myMap.Children.Add(polyline);
myMap.SetView(new LocationRect(polyline.Locations));

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...