Это звучит, как вы могли бы:
а) Выяснить выровненный по осям ограничивающий прямоугольник для вашей фигуры. Наложите это на единую сетку, проверьте каждую точку сетки на то, чтобы быть внутри вашей фигуры. Наивный подход, подобный этому, является неоптимальным, я уверен, но если ваша форма не ограничена (она (строго) выпуклая, имеет ли она какие-либо дыры в ней?), То это может быть проще и проще всего реализовать.
b) У вас есть конечные точки для каждого сегмента линии на границе вашей фигуры, довольно просто разделить каждый отрезок линии на регулярные интервалы.
Теперь у вас есть точки, обозначенные широтой, долготой и расстояниями в метрах. Если ограничивающий прямоугольник достаточно мал (это зависит от ваших требований к точности, но, как правило, я бы предположил, что если ваш ограничивающий прямоугольник меньше 30 минут дуги по обе стороны, он достаточно мал) просто пахайте вперед и лечите lat, длинные как плоские координаты, преобразуют 30 м в (локальное) угловое измерение - и имейте в виду, что угловые измерения с востока на запад и с севера на юг могут быть не равными. Для большинства населенных частей Земли это будет достаточно точной.
Для более высокой точности вам потребуется использовать какую-либо проекцию, чтобы преобразовать ваши географические координаты в координаты плоскости, чтобы согласовать их с вашей спецификацией сетки, или наоборот (или оба, так как ваши входы представляют собой смесь географических и плоских точек).
Вы используете конкретную платформу? – SingleNegationElimination 2010-12-08 02:59:07
Я использую RoR с Google maps – khelll 2010-12-08 03:00:29