У меня есть CLLocationCoordinate2D (c1) и CLLocation (l1), поэтому у меня есть значения lat / long для каждой точки, и я могу рассчитать расстояние в метрах между ними, используя:
[c1 distanceFromLocation:l1]
Как найти координаты точки (c2) на 100 метров ближе к l1, чем c1 (вдоль того же направления)?
Я рассчитал, используя базовый триг, используя следующее:
- использовал разницу широты и долготы для вычисления гипотенузы и угла
- использовал соотношение между расстоянием до cl и расстоянием до c2, чтобы получить гипотенузу треугольника, заканчивающегося в c2
- использовал cos и sin для вычисления долготы и широты c2
Но это похоже на хакерский способ сделать это, так как он не учитывает кривизну и, похоже, использует широту и долготу так, как их не предполагается использовать. Похоже, он работает на коротких расстояниях.