2011-11-02 4 views
1

지도 중첩에 여러 개의 점이 있으며 각 점에 고유 한 번호가 매겨진 표시가 있습니다. 포인트는 오버레이에 그려지기를 원합니다 (예 : 마커 0에서 10까지 - 10이 최신 포인트 임). 지도가 표시되면 점이 위도가 커지는 순서로 그려집니다. 이것은 내 경우보다 포인트 7에 대한 마커가 마커 상단에 그려 질 수 있다는 것을 의미합니다. 마커가지도 상에 배치되는 순서를 제어하는 ​​방법이 있습니까?지도 오버레이에서지도가 그려지는 순서를 변경할 수 있습니까

+0

"업데이트 됨 : 내가 발견했습니다 ..."에서 시작하여 질문에서 제거하고 답변으로 추가하시는 것이 좋습니다. 이 방법으로 사람들은 그 질문이 실제로 쉽게 대답되었고, 질문과 대답을 따로 따로 투표 할 수 있음을 볼 수 있습니다. –

+0

스캇, 고마워, 지금 이걸 해냈어. 원래 평판을 얻지 못했을 때 내 질문에 대답 할 수 없었다. 그때 나는 평판이 충분하지 않았고, 그걸 잊었다. ( – Richard

+0

멋지다, 지금 해줘서 고마워! –

답변

1

나는 그것을 발견 - 다음 코드를 추가하고 작동하는 것. 이렇게하면 위도가 증가하는 순서가 아니라 오버레이에있는 것과 동일한 순서로 항목이 그려집니다.

흥미롭게도 다른 주문 (예 : 역순으로)을 선택하면 이전 항목이 나중에 표시되는 것과 겹쳐서 묻는대로지도가 표시됩니다. 즉 점 7은 둘 모두가 동일한지도 좌표를 갖는 경우 점 10의 꼭대기에 그려집니다. 그러나 점 7로 표시된 점을 탭하면 onTap 메서드는 점 10에 대한 색인을 제공합니다 (아마도 시퀀스에서 10 번째로 그려 졌기 때문일 수 있습니다). 이로 인해 혼란이 생길 ​​수 있습니다. 그런 다음 표시해야 할 순서를 기억하고 실제로 어떤 항목이 맨 위에 올랐는지 기억하는 것은 사용자의 몫입니다.

@Override 
protected int getIndexToDraw(int drawingOrder) { 
    // Log.d("getIndexToDraw", "drawing order: " + drawingOrder); //just my debug 
    return drawingOrder; // forces order to follow overlay item sequence 
    // return super.getIndexToDraw(drawingOrder); // default code - ie Latitude order 
} 
관련 문제