【发布时间】:2020-06-02 00:10:21
【问题描述】:
我在 Win 10 的 UWP MapControl 中绘制多边形。我看到您可以通过生成自定义样式表然后为元素分配样式来更改地图元素的外观。我找到了Map Style Sheet Editor 并创建了一个带有扩展样式的新样式表:
{
"version": "1.*",
"settings": {
},
"elements": {
},
"extensions": {
"sxMapView": {
"polyRemoveArea": {
"fillColor": "#80FF0000",
"strokeColor": "#FFFF0000",
"strokeWidthScale": 5,
"visible": true
},
"polyProcessArea": {
"strokeColor": "#FF00FFFF",
"strokeWidthScale": 5,
"visible": true
},
"ptRemoveArea": {
"visible": true
},
"ptProcessArea": {
"visible": true
}
}
}
}
如果我关注this example 并在 2D 地图视图中分配“sxMapView.polyRemoveArea”,一切正常。
但是,如果我切换到 3D 地图视图:
myMapControl.Style = MapStyle.Aerial3D;
样式似乎被忽略了,并且使用了默认的蓝色(我通过不对多边形应用样式进行测试,并且填充了蓝色)。
此外,如果您在分配自定义样式表之前尝试将地图设置为 3D,则自定义样式表会将地图恢复为 2D 视图,即使没有描述该样式的样式。
myMapControl.Style = MapStyle.Aerial3D; // <- Set map to 3D
string styleSheetJson = "{...json style sheet from above ...}"
...
myMapControl.StyleSheet = MapStyleSheet.ParseFromJson(styleSheetJson); // <- Map reverts to 2D
如何在地图控件样式表中定义地图元素的扩展样式并使用 Aerial3D 视图?
【问题讨论】: