Описание:
Есть координаты объектов в формате возвращённым Google Api. То есть широта, долгота и т.п.
Например у меня 3 объекта, берём объект (1) его локальные координаты становятся [0,0]. Объект (2) находится на 5 метров на север и 2 метра на восток относительно объекта (1), его координаты должны стать [5,2]. Объект номер (3) находится на 75 метров на юг и на 35 метров на запад, его координаты должны стать [-75, -35].
Вопрос:
Как перевести объекты в локальную систему координат зная их широту и долготу, пожалуйста помогите?
Видимые решения:
Появилась мысль получить расстояние между объектами при помощи
следующего решения. (однако тут точность в км, как можно
повысить до метров?) И после этого вычислить угол между
географической координатой северного полюса, объекта (1) (который
взят за [0,0] в локальных) и объекта (2) и уже зная дистанцию и
угол рассчитать координату объекта (2) в локальных координатах. Будет ли искажение у угла,
если я применю подобные вычисления? Земля же не квадратная
P.S. Надо вычислять на телефоне, и таких вычислений будет до 50 шт за раз, а то и больше, желательно максимально оптимальное решение, но важна точность вплоть до 1 метра. (Подобные вычисления на телефоне вызывают у меня опасения)
P.P.S. Можете пожалуйста предоставить код на C# решения данного вопроса?
P.P.P.S. По идеи это всё похоже на систему где объект (1) - это человек, и требуется рассчитать в метрах положение объектов в локальных координатах (метрах). Однако я не смог найти, как это реализовано в gps навигаторах.
Ответ
Точность позиционирования определяется точностью координат. Если Google возвращает тебе километры, значит будут километры. Возвращает метры - будут метры.
Да, разумеется, искажения будут. Прочитай про проекции координат на плоскость. Выбирай что тебе больше нравится - равноугольные, равновеликие или какие-нибудь ещё.
После того, как ты переведёшь географические координаты в координаты на плоскости, вычесть y/x одного объекта из другого для тебя не составит труда.
Пока чисел меньше 1 000 000 ты можешь использовать любое решение, потерь скорости ты не заметишь, больше потратишь на отображение.
Есть готовое решение на все случаи жизни, не обязательно изобретать собственный велосипед.
Комментариев нет:
Отправить комментарий