안녕하세요 다음 지도 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개의 좋아요