2016-10-18 6 views
0

У меня есть функция геометрии LineString с весом в GeoJSON. Теперь я хочу определить координаты 4 вершин этого прямоугольника. Я знаю, как вычислять по плоской геометрии с помощью линейного уравнения. Но по географической геометрии я новичок. Я уже читал, как вычислять одну единицу десятичной степени широты и долготы, а также метры на пиксель, но я все еще запутался, как добавить их в заданную точку для вычисления желаемых точек. Моя проблема такова:рекламная листовка - подсчитайте координаты прямоугольника от двух точек средней линии

Дано:

  • Broadth прямоугольника
  • координаты двух точек, составляющих среднюю линию, расстояние между этими двумя точками равны по ширине

Результат : Координаты 4 вершин прямоугольника

Например: Две точки LineString

A (10.767008,106.665884) 
B (10.767715,106.667151) 

Вес LineString 6 пикселей на уровне масштабирования 18

можно рассчитать ширину прямоугольника (расстояние между этими двумя точками), broadth прямоугольника (количество метров на пиксель, а затем умножить). Как я могу использовать их для вычисления 4 координат вершин этого прямоугольника?

Все мои вычисленных случаев на малых масштабах (часть одной из улиц города), поэтому я думаю, что высота может быть исключен

+0

Возможно, вы имеете в виду ширину вместо веса? – Simon

ответ

1

Это звучит, как вы хотите, чтобы получить «степень» вашего LineString (ака «ограничивающая рамка» вашей линейной строки). Вы можете использовать функцию turf-extent turf.js, чтобы получить размер вашей линейной линии GeoJSON. Эта область будет прямоугольником, который вы ищете, как полигон GeoJSON. Затем вы можете использовать другие функции turf.js на этом полигоне, чтобы получить ширину, длину, площадь и т. Д.