fitToElements у меня тоже не работает. Я должен был использовать fitToCoordinates
https://github.com/react-native-community/react-native-maps/blob/master/docs/mapview.md
this.mapRef.fitToCoordinates(coordinates)
где coordinates
- массив объектов {широта: число, долгота: число}
преобразовать окружность в массив координат, вызвав функцию get4PointsAroundCircumference
, передавая в центре положение окружности и радиус в Км
// returns four coordinates around the circle
function get4PointsAroundCircumference(latitude, longitude, radius) {
const earthRadius = 6378.1 //Km
const lat0 = latitude + (-radius / earthRadius) * (180 / Math.PI)
const lat1 = latitude + (radius / earthRadius) * (180 / Math.PI)
const lng0 = longitude + (-radius / earthRadius) * (180 / Math.PI) / Math.cos(latitude * Math.PI / 180);
const lng1 = longitude + (radius / earthRadius) * (180 / Math.PI) / Math.cos(latitude * Math.PI / 180);
return [{
latitude: lat0,
longitude: longitude
}, //bottom
{
latitude: latitude,
longitude: lng0
}, //left
{
latitude: lat1,
longitude: longitude
}, //top
{
latitude: latitude,
longitude: lng1
} //right
]
}
const points = get4PointsAroundCircumference(51.509865, -0.118092, 100)
console.log(points);
this.mapRef.fitToCoordinates(points, {
animated: true
})