我要在一个MapControl上放置多个MapPolygon。 MapPolygon的笔划设置不正确。所有多边形的笔触颜色(无论它们位于哪个层)都将绑定到Z指数最高的多边形。我使用Microsoft的UWP MapControl示例创建了一个示例: https://docs.microsoft.com/en-us/windows/uwp/maps-and-location/display-poi 请参阅“添加形状”部分。
我尝试将每个多边形放置在单独的图层中,但结果相似。
值得注意的是,“ Polygon FillColor”参数仅对笔触颜色和粗细不受影响。
XAML
<my:MapControl HorizontalAlignment="Left" x:Name="mapControl" MapServiceToken="..." Width="1650" Height="800" />
public BlankPage1()
{
this.InitializeComponent();
BasicGeoposition cityPosition = new BasicGeoposition() { Latitude = 34.8, Longitude = -116, Altitude = 0 };
Emitter_Position = new Geopoint(cityPosition);
mapControl.Center = Emitter_Position;
mapControl.ZoomLevel = 9;
mapControl.LandmarksVisible = true;
test_polygons();
}
public void test_polygons()
{
double centerLatitude = Emitter_Position.Position.Latitude;
double centerLongitude = Emitter_Position.Position.Longitude;
var MyHighlights = new List<MapElement>();
var mapPolygon = new MapPolygon
{
Path = new Geopath(new List<BasicGeoposition> {
new BasicGeoposition() {Latitude=centerLatitude+0.1, Longitude=centerLongitude-0.1 },
new BasicGeoposition() {Latitude=centerLatitude-0.1, Longitude=centerLongitude-0.1 },
new BasicGeoposition() {Latitude=centerLatitude-0.1, Longitude=centerLongitude+0.1 },
new BasicGeoposition() {Latitude=centerLatitude+0.1, Longitude=centerLongitude+0.1 },
}),
ZIndex = 2,
FillColor = Colors.Red,
StrokeColor = Colors.Blue,
StrokeThickness = 3,
StrokeDashed = false,
};
var mapPolygon2 = new MapPolygon
{
Path = new Geopath(new List<BasicGeoposition> {
new BasicGeoposition() {Latitude=centerLatitude+0.2, Longitude=centerLongitude-0.2 },
new BasicGeoposition() {Latitude=centerLatitude-0.2, Longitude=centerLongitude-0.2 },
new BasicGeoposition() {Latitude=centerLatitude-0.2, Longitude=centerLongitude+0.2 },
new BasicGeoposition() {Latitude=centerLatitude+0.2, Longitude=centerLongitude+0.2 },
}),
ZIndex = 1,
FillColor = Colors.Green,
StrokeColor = Colors.Yellow,
StrokeThickness = 3,
StrokeDashed = false,
};
MyHighlights.Add(mapPolygon);
MyHighlights.Add(mapPolygon2);
var HighlightsLayer = new MapElementsLayer
{
ZIndex = 1,
MapElements = MyHighlights
};
Result_Map.Layers.Add(HighlightsLayer);
}
mapPolygon2的笔触颜色显示为蓝色而不是黄色。如果您翻转mapPolygons的Zindex,则两个多边形的笔触都将变为黄色。那么,在显示多个多边形时正确设置笔触的窍门是什么?
答案 0 :(得分:1)
这不会受到您所定位的操作系统版本的影响,而是会受到您所运行的操作系统版本的影响。这是1809年之前的OS版本中的一个已知问题,因此已修复了大约一年。更新到较新版本的OS应该可以解决您的问题。如果无法更新操作系统,建议的解决方法是先绘制没有边框的多边形,然后在单独的调用中将边框绘制为多段线。