Определить объекты с одной и с другой стороны дороги
Добавлено: 07 окт 2012, 17:34
Добрый день!
Подскажите, пожалуйста, в какую сторону копать?
У меня есть база(postgis), в которой много разных объектов с координатми (точками). Как правило, объекты расположены вдоль дорог (polylines). Мне нужно каким-то образом определять объекты, которые с одной и с другой стороны дороги. Причём "область допуска" нужно иметь возможность регулировать. Т.е. есть линия дороги и хочу получить список объектов справа от дороги и слева (считаем линию улицы направленной и право и лево определить можно).
Эту задачу можно свести к получению из линии многоугольника в форме полосы с одной стороны дороги и с другой нужной ширины. Система у меня написана на ruby, но это не принципиально, если это просто делается другими средствами, можно и что-то другоe использовать попробовать.
На данный момент я вижу некрасивое решение. Т.к. всё это будет относительно локально (улица вряд ли больше, скажем, 10км), то все эти рассчёты можно производить просто в неугловых координатах - погрешности будут весьма не большими (как я могу судить) и для моих задач несущественными. Однако, это, конечно, велосипед с костылём, но пока не нашёл примеров как можно такие расчёты реализовать на угловых gps-координатах. Вернее, если засесть и вспоминать чему учили в инстутите, рано или поздно, я это осилю, но боюсь это будет слишком дорогое решение. Наверняка есть библиотеки, реализующие эту логику.
Заранее большое всем спасибо за советы!
Подскажите, пожалуйста, в какую сторону копать?
У меня есть база(postgis), в которой много разных объектов с координатми (точками). Как правило, объекты расположены вдоль дорог (polylines). Мне нужно каким-то образом определять объекты, которые с одной и с другой стороны дороги. Причём "область допуска" нужно иметь возможность регулировать. Т.е. есть линия дороги и хочу получить список объектов справа от дороги и слева (считаем линию улицы направленной и право и лево определить можно).
Эту задачу можно свести к получению из линии многоугольника в форме полосы с одной стороны дороги и с другой нужной ширины. Система у меня написана на ruby, но это не принципиально, если это просто делается другими средствами, можно и что-то другоe использовать попробовать.
На данный момент я вижу некрасивое решение. Т.к. всё это будет относительно локально (улица вряд ли больше, скажем, 10км), то все эти рассчёты можно производить просто в неугловых координатах - погрешности будут весьма не большими (как я могу судить) и для моих задач несущественными. Однако, это, конечно, велосипед с костылём, но пока не нашёл примеров как можно такие расчёты реализовать на угловых gps-координатах. Вернее, если засесть и вспоминать чему учили в инстутите, рано или поздно, я это осилю, но боюсь это будет слишком дорогое решение. Наверняка есть библиотеки, реализующие эту логику.
Заранее большое всем спасибо за советы!