Отображение булавок вокруг точки на картах Google - PullRequest
1 голос
/ 11 февраля 2011

Есть ли способ перевести в javascript фрагмент кода, который позволит мне показывать булавки карты вокруг точки с учетом радиуса?

var data=[
  {long:3,lat:2},
  {long:5,lat:2},
  {long:2,lat:3}
];

aCoord={long:1,lat:2};

for(var i=0;i<data.length;i++){
  if (data[i] is 30 kms far from aCoord)
    myMap.addPin(data[i]);
}

myMap.autozoom();

Спасибо,
Привет

1 Ответ

1 голос
/ 12 февраля 2011

Я придумал этот пример, чтобы вы знали, как рассчитать баллы. Вам нужно будет выяснить, как сделать необходимые преобразования для широты / долготы.

/**
* Returns coordinates for N points around a circle with a given radius from
* the center.
*
* center: array [x, y]
* radius: int
* num_points: int
*/
function get_points_on_circle(center, radius, num_points) {
    if (!num_points) num_points = 10;

    var interval = Math.PI * 2 / num_points;
        points = [];

    i = -1;
    while (++i < num_points) {
        var theta = interval * i,
            point = [Math.cos(theta) * radius + center[0], Math.sin(theta) * radius + center[1]];
        points.push(point);
    }

    return points;
}


// Sample usage
var center = [250, 250],
    radius = 100,
    num_points = 10;

var points = get_points_on_circle(center, radius, num_points);

Проверьте это (использует Рафаэля для построения графика)

Если вам интересно немного узнать о логике:

  • Радиан - это единица измерения углов. Всего в круге 2 * пи радианы. Используя этот факт, вы можете вычислить угловой интервал любого количества точек на окружности, выполнив 2*PI/num_points.

  • Когда вы знаете угловой интервал, вы можете вычислить угол (тета) точки на окружности. Если у вас есть тета (угол), у вас есть полярные координаты (радиус, угол). Чтобы это пригодилось нам в этой задаче, вам необходимо преобразовать полярные координаты в декартовы (x, y). Вы можете сделать это, используя следующие формулы:
    х = соз (тета) * радиус
    у = грех (тета) * радиус

Это в значительной степени все в двух словах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...