У меня есть небольшое приложение с Map
, и я хочу сделать что-то вроде миникарты.
Иллюстрация проблемы: 
Белая область (прямоугольник, а не квадрат, 1200x800px ) представляет Map
, а зеленая область представляет культуру (квадрат с радиусом (около * 1018)* 800x800px )), которую я хочу получить с карты.
Всякий раз, когда я пытался это сделать (я пытался использовать ShaderEffectSource
и OpacityMask
), целое значение Map
было взято и изменено на квадрат, поэтому вывод был искажен.
Iхочу взять только ту часть Map
, которая покрыта зеленой областью.
Rectangle {
id: map
width: 1200
height: 800
color: "white"
Rectangle {
id: mask
anchors.centerIn: parent
width: 800
height: 800
radius: width/2
}
}
Как мне добиться чего-то подобного?
Спасибо за вашу помощь!
РЕДАКТИРОВАТЬ: Это мой текущий код
ShaderEffectSource {
visible: true
id: shaderEffect
anchors.centerIn: parent
width: parent.height
height: parent.height
sourceItem: map
layer.enabled: true
layer.effect: OpacityMask {
maskSource: Rectangle {
width: map.height
height: map.height
radius: width/2
}
}
}
// РЕДАКТИРОВАТЬ: Добавлено изображение
Мой искаженный результат
Как вы можете видеть, карта деформирована - исходный размер компонента Map был изменен с 1200x800 до 800x800 (размер круга).Моя цель - обрезать все, что находится за пределами круга.