Как уменьшить масштаб и анимировать камеру, когда в моем приложении Flutter Google Maps нарисован маршрут с полилиниями - PullRequest
0 голосов
/ 17 июня 2020

My flutter приложение Google maps dr aws маршрут между двумя точками, но часто две точки не помещаются на экране, я хочу, чтобы пользователь мог видеть две точки, например, когда пользователь выбирает свое местоположение и приложение dr aws маршрут от его местоположения до пункта назначения он должен быть виден и поместиться на экране, надеюсь, с анимированной камерой для плавного восприятия, любые мысли, пожалуйста, и спасибо

1 Ответ

1 голос
/ 17 июня 2020

Вам необходимо использовать CameraUpdate.newLatLngBounds(), чтобы сделать две точки видимыми на экране.

пример использования:

mapController.animateCamera(
      CameraUpdate.newLatLngBounds(
          LatLngBounds(
                southwest: LatLng(
                    fromLocationLatLng.latitude <= toLocationLatLng.latitude
                        ? fromLocationLatLng.latitude
                        : toLocationLatLng.latitude,
                    fromLocationLatLng.longitude <= toLocationLatLng.longitude
                        ? fromLocationLatLng.longitude
                        : toLocationLatLng.longitude),
                northeast: LatLng(
                    fromLocationLatLng.latitude <= toLocationLatLng.latitude
                        ? toLocationLatLng.latitude
                        : fromLocationLatLng.latitude,
                    fromLocationLatLng.longitude <= toLocationLatLng.longitude
                        ? toLocationLatLng.longitude
                        : fromLocationLatLng.longitude)),100),
    );

вам необходимо иметь в виду следующее условие, используемое в примере выше .

'southwest.latitude <= northeast.latitude': is not true.

В противном случае будет выдана ошибка.

Обновление:

Если вы посмотрите на Cardinal Направление , для каждого направления указаны c границы / диапазоны

             North (+90)
               |
(-180) West ———+——— East (+180)
               |
             South (-90)

В примере ниже southWest = Latlng (-7.12725588946924, 159.14) на самом деле будет больше восточнее, чем northEast = Latlng ( 70.0415297179124, 24.855900000000005).

И масштабирование будет go за пределами границы, т.е. к востоку от данной точки, а не к юго-западу. Вы можете узнать больше об этом ящике, используя этот интерактивный веб-сайт https://boundingbox.klokantech.com/

выше информация после обновление взято из https://github.com/Leaflet/Leaflet/issues/4919

...