Подогнать вид карты по кругу - PullRequest
0 голосов
/ 28 августа 2018

Я использую библиотеку react-native-maps для создания картографического изображения с некоторыми маркерами и кругами вокруг них. Мне бы очень хотелось, чтобы в карту можно было вписать круги, а не только маркеры на карте. Кто-нибудь получил что-то подобное на работу?

Вот закуска, показывающая текущую настройку, которую я имею в react-native

https://snack.expo.io/@jordanr/fittoelements-issue

1 Ответ

0 голосов
/ 08 декабря 2018

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
})
...