анимации как в апл картах?
использовать applemaps)
Если не делать анимацию для каждого маркера, что проще, но не хорошо, есть предположение взять map bones и наложить сверху 1 холст. Т.е. это анимация внутри custom paint. Тут главноя загвоздка это перевести координаты lat=long в offset, что бы корректно расположить маркеры внутри custom paint, ибо измерения и отступы от верхней левой точки идут в другой метрике Резюмирую: иои анимации дл каждого элемента из массива , иои приведение lat/long в offset, исходя из map bones
#gpt Тут ai пример написала, исходя из того, что нужен 1 холст: Для конвертации координат в отступы (offset) вам нужно выполнить несколько шагов: 1. Найти ширину и высоту виджета с картой в пикселях. 2. Найти масштаб карты, используя ман-границы и размер виджета. Для этого необходимо вычислить разницу между максимальной и минимальной широтой и долготой ман-границ, а затем разделить их на ширину и высоту виджета соответственно. 3. Найти отступы (offset) для каждого маркера. Для этого необходимо вычислить разность между координатами маркера и минимальными координатами ман-границ, а затем разделить их на соответствующие масштабированные размеры виджета. Пример кода, который конвертирует координаты маркера в отступы (offset): dart LatLngBounds bounds = ... // получаете ман-границы для карты List<Marker> markers = ... // получаете список маркеров для карты // ширина и высота виджета с картой в пикселях double width = MediaQuery.of(context).size.width; double height = MediaQuery.of(context).size.height; // масштаб карты double latScale = height / (bounds.north - bounds.south); double lngScale = width / (bounds.east - bounds.west); // конвертация координат маркера в отступы (offset) Offset getMarkerOffset(LatLng latLng) { double dx = (latLng.longitude - bounds.west) * lngScale; double dy = (bounds.north - latLng.latitude) * latScale; return Offset(dx, dy); } // использование функции для получения отступов (offset) каждого маркера в списке List<Offset> markerOffsets = markers.map((marker) => getMarkerOffset(marker.point)).toList();
Обсуждают сегодня