Unact / yandex_mapkit

Flutter implementation of YandexMapkit
MIT License
132 stars 151 forks source link

getScreenPoint #188

Closed Hellomik2002 closed 2 years ago

Hellomik2002 commented 2 years ago

Новая фича работает не полноценно На сколько я понял что нужно еще добавить информацию о размрее карты потому что размеры немного не сопвадают или что то такое

Hellomik2002 commented 2 years ago

https://github.com/Hellomik2002/yandex_mapkit/blob/master/ios/Classes/YandexMapController.swift Вот я делал такую вещь

Hellomik2002 commented 2 years ago

Можете просто добавить MapSize

Hellomik2002 commented 2 years ago

Если додите мне одобрение сам добавлю просто сам юзаю или скажите что можешь сам сделать и добавите если все ок И еще потом сам реализую и оптимизирую

DCrow commented 2 years ago

Доброе утро!

Для получения размера виджета надо пользоваться функциями предоставляемые флаттером. В вашем случае это выглядит примерно так

class ExamplePage extends StatefulWidget {
  @override
  _ExamplePageState createState() => _ExamplePageState();
}

class _ExamplePageState extends State<ExamplePage> {
  late YandexMapController controller;
  final GlobalKey _mapKey = GlobalKey();

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      crossAxisAlignment: CrossAxisAlignment.stretch,
      children: <Widget>[
        Expanded(child: YandexMap(key: _mapKey)),
        const SizedBox(height: 20),
        ElevatedButton(
          onPressed: () => print(_mapKey.currentContext?.size),
          child: Text('Get map size', textAlign: TextAlign.center),
        )
      ]
    );
  }
}
Hellomik2002 commented 2 years ago

Не работает ибо размер берется относительно четсно я фиг его как так вышло

Hellomik2002 commented 2 years ago
Screen Shot 2022-02-05 at 02 47 44
Hellomik2002 commented 2 years ago

Просто попробуй взять высоту у самой карты и самого виджета они разные, почему я хз

Hellomik2002 commented 2 years ago

Крч братан размер dp и px разные просто добавь MediaQuery.of(context).devicePixelRatio к умножению(делить надо) size и код робит оказываетя