@Holyboom
junior fullstack

Как получить гео-точки из видимой области на карте при изменении угла карты?

На бэке работает ES из которого я получаю точки для отображения на карте яндекса.
При движении карты я получаю Область видимости карты в виде :
topLeftLat, topLeftLng, bottomRightLat , bottomRightLng

и при нулевом азимуте такой запрос в ES работает отлично :
[
                    "exists" => [
                        "field" => "location"
                    ]
                ],
                [
                    "geo_bounding_box" => [
                        "location" => [
                            "top_left" => $topLeftLat.','.$topLeftLng,
                            "bottom_right" => $bottomRightLat.','.$bottomRightLng
                        ]
                    ]
                ]


но при изменении угла карты (азимута обзора) он естественно перестает выдавать точки (тк точки верха и низа уже не там относительно севера).
в доках не нашел как это обойти , может кто знает ?
или может как можно передвинуть точки которые я передаю в ES на нужное место согласно азимуту?
можно на любом языке)
всем заранее спасибо!
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
@Holyboom Автор вопроса
junior fullstack
короче как я решил этот вопрос.
тк мне не нужна супер точность я использовал такую формулу :
//dist расстояние , в моем случает от центра карты до лев верх угла карты в метрах.
// те это то расстояние от центра на котором мы поставим наши точки 
// a  = угол на который наклонить точки относительно нулевого азимута.
// lat и  long координаты точки в центре экрана 
var p180= 180/pi;
      var dx =  p180 * ((cos(a / 180 * pi) * dist) / 6378137) ;
      var dy =  p180 * ((sin(a / 180 * pi) * dist) / 6378137) ;
      var toplat = latitude + dy;
      var toplng = longitude + dx / cos(latitude);
      var bottomlat = latitude - dy;
      var bottomlng = longitude - dx / cos(latitude);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы