Я рисую многоугольники в UWP MapControl в Win 10. Я видел, что вы можете изменить внешний вид элементов карты, создав собственную таблицу стилей и назначив стили элементам. Я нашел таблицу стилей карты 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
}
}
}
}
Если я последую за этот пример и назначьте "sxMapView.polyRemoveArea" в режиме 2D-карты, все работает нормально.
Однако, если я переключусь на просмотр 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?