Вам необходимо ввести коэффициент масштабирования с новыми координатами X и Y, которые были масштабированы из исходного изображения. Кроме того, я склонен думать, что использование виджета «Позиционирование» лучше, чем виджета «Выравнивание», когда вы используете стек.
Масштабированные значения X и Y будут выглядеть примерно так:
double scaleX(originalx, originalwidth, currentwidth){
return(originalx * currentwidth / originalwidth);
}
double scaleY(originaly, originalheight, currentheight){
return(originaly * currentheight / originalheight);
}
Затем вы можете использовать эти масштабированные значения точно так же, как исходные значения x и y на теперь масштабированной карте.
Чтобы сделать его более понятным, я создал дартпад, чтобы вы могли поиграть с ним: http://dartpad.dev/34ec25e551a58127b8635fc56744ff29
Зеленый контейнер предназначен для имитации вашего карта, и желтая точка желаемой точки. Вы можете изменить scalingFactorHeight и scalingFactorWidth в коде для имитации различных размеров экрана. Вы увидите, что желтая точка остается в центре, хотя значения x и y постоянны.