Вам необходимо использовать 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