Клуб API Карт

Как вокруг точки нарисовать круг с заданным диаметром в км?

nolan23
18 февраля 2010, 09:49

сабж.

пытался так (рисую просто 12 точек через каждые 30 градусов)

distance = 10; //(в километрах)

dots.removeAll();
for(i=0; i<12; i++)
{
  var dot = YMaps.jQuery("<div class=\"placemark-circle-dots\"></div>");  
var angle = i * 30;
var position = map.converter.coordinatesToMapPixels(getGeoPoint(coordPoint, distance, angle));
dot.css({
left : position.x,
top : position.y
});
dots.add(dot);
};

 function getGeoPoint(center, distance, angle)
{
function rad(angle) { return (angle * Math.PI / 180); }

dx = distance / (111.2 *0.8 * Math.cos(rad(center.getLng()))) * Math.cos(rad(angle));
dy = distance / 111.2 * Math.sin(rad(angle));
return (center.copy().moveBy(new YMaps.Point(dx, dy)));
 }


не получается

2 комментария
Подписаться на комментарии к посту
Что такое dots?
Зачем Вы домножаете 111.2 на 0.8*косинус долготы? Нужно брать 111.1 * косинус широты (для небольших расстояний).

Дайте полный текст примера.
спасибо, разобрался. как раз именно косинус широты. :-)