키워드로 장소검색하고 목록으로 표출하기에서요

목록표출 정렬을

지도 중심값 바탕(제가 지정해서)으로 가장 가까운 거리부터 정렬을 시키고 싶은데요

circle 이벤트를 사용해야 되나요?

1개의 좋아요

기준 좌표를 중심으로
각 지점마다의 거리를 계산하여 정렬해야 합니다.

기준 좌표는 지도의 중심,
각 장소가 들어있는 배열을 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에 순서대로 그리면 됩니다.

2개의 좋아요

감사합니다! 멋져요!!