반경 정보를 이용하여 마커 생성하기

안녕하세요 다음 지도 API를 이용하여 개발을 해보려합니다.
http://apis.map.daum.net/web/sample/calculateCircleRadius/ 를 참고하여
중심점을 이용하여 반경을 만들어 냅니다. 제가 궁금한건 반경을 생성할 때 그 반경 안에만 마커(X,Y 좌표 정보)를 추가하여 반경을 생성할 수 있을까요?
아니면 클러스터러를 이용하면 가능할까요?

1개의 좋아요

가능합니다.

중심점 좌표는 Map.getCenter() (이하 c1)로 구할 수 있고
각 마커들의 좌표는 Marker.getPosition() (이하 c2)으로 구할 수 있습니다.

이 두 좌표의 거리를 m값으로 구할 수 있는 방법이 있습니다.
바로 Polyline.getLength()입니다.
이 값을 원의 반지름으로 넣어준 Radius와 비교하여 작은 거리의 마커만 Marker.setMap(map) 해주시면 됩니다.

// 원(Circle)의 옵션으로 넣어준 반지름
var radius = 100;

// 마커들이 담긴 배열
markers.forEach(function(m) {
    var c1 = map.getCenter();
    var c2 = m.getPosition();
    var poly = new Polyline({
      // map: map, 을 하지 않아도 거리는 구할 수 있다.
      path: [c1, c2]
    });
    var dist = poly.getLength(); // m 단위로 리턴

    if (dist < radius) {
        m.setMap(map);
    } else {
        m.setMap(null);
    }
});
1개의 좋아요