Генерация длинного лота для позиции в пределах набора границ - PullRequest
0 голосов
/ 02 ноября 2011

Мы используем API карт Google V3, и у нас есть набор границ (в настоящее время в файле KML), которые не являются квадратными (давайте используем форму Англии в качестве примера), и мне нужно сгенерировать случайную широту и долготу изв пределах границ, когда пользователь завершает действие.

Есть ли какой-нибудь умный способ сделать это в javascript / jQuery или библиотеке javascript, которая бы уже сделала это?

Ответы [ 3 ]

1 голос
/ 02 ноября 2011
0 голосов
/ 02 ноября 2011

Самый простой способ получить случайную точку непрямоугольной формы:

 1) Compute the bounding rectangle (cheap)
 2) Generate a point in the bounding rectangle (cheap)
 3) Check if that point is inside your shape (expensive)
    3.1) If it is, return the point
    3.2) If it is not, go back to (2)

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

OpenLayers действительно имеет геометрические примитивы, так что вы можете реализовать это в несколько строк.

0 голосов
/ 02 ноября 2011

Нет личного опыта, но OpenLayers ? Он может определить, пересекается ли точка с другой геометрией OpenLayers.Geometry.Point и т. Д.

...