목록표출 정렬을
지도 중심값 바탕(제가 지정해서)으로 가장 가까운 거리부터 정렬을 시키고 싶은데요
circle 이벤트를 사용해야 되나요?
목록표출 정렬을
지도 중심값 바탕(제가 지정해서)으로 가장 가까운 거리부터 정렬을 시키고 싶은데요
circle 이벤트를 사용해야 되나요?
기준 좌표를 중심으로
각 지점마다의 거리를 계산하여 정렬해야 합니다.
기준 좌표는 지도의 중심,
각 장소가 들어있는 배열을 places
,
각 원소의 elem.x
, elem.y
가 각각 경/위도라고 할 때,
아래와 같은 정렬함수로 배열 내부를 정렬할 수 있습니다.
places.sort(function(a, b) {
var ax = parseFloat(a.x),
ay = parseFloat(a.y),
bx = parseFloat(b.x),
by = parseFloat(b.y);
var c = map.getCenter(),
cx = c.getLng(),
cy = c.getLat();
var deltaA = (cx - ax) * (cx - ax) + (cy - ay) * (cy - ay),
deltaB = (cx - bx) * (cx - bx) + (cy - by) * (cy - by);
return deltaA - deltaB;
});
이렇게 정렬된 배열값을 참조하여 View에 순서대로 그리면 됩니다.
감사합니다! 멋져요!!