2012-10-30 2 views
0

지도에 3 가지 오버레이가 있습니다. 1) 간단한 마커가있는 오버레이의 종류가 있습니다. 오버레이를 클릭하면 팝업이 표시됩니다. 2) 다른 종류의 오버레이에는 캔버스 그리기가 포함되어 있습니다. 이러한 오버레이의 onTouch 이벤트는 맵에서 비트 맵 드로잉을 포함하는 오버레이의 세 번째 종류를 표시해야합니다. 그리고 세 번째 종류의 오버레이 이벤트도 있습니다.200 개 이상의 마커로 맵뷰의 성능 향상

너무 많은 계산과 많은 캔버스 드로잉으로 인해 맵보기의 성능이 저하됩니다.

https://github.com/staroud-android/OverlayManager에서 Overlaymanager libreary를 통과했습니다. 그러나 저를 돕지 않는 것.

내 요구 사항을 고성능으로 충족시킬 수있는 방법이 있습니까?

Polaris지도 라이브러리가 성능 향상에 도움이된다는 제안이 필요합니까? https://github.com/cyrilmottier/Polaris

답변

1

GeoPoint을 추가 할 때마다 MapView을 채우고 있습니다. 이 코드에게 GeoPoints 장소를 통해

itemizedOverlay.populateNow(); 

를 반복 한 후에

과 같이 당신에게 itemizedOverlay을 변경 : 코드에 이것을 추가하십시오 당신의 답변을

public void addOverlay(OverlayItem overlay) { 
    m_overlays.add(overlay); 
     } 
public void populateNow() 
{ 
    populate(); 
} 

@Override 
protected OverlayItem createItem(int i) { 
    return m_overlays.get(i); 
} 

@Override 
public int size() { 
    return m_overlays.size(); 
} 
+0

감사합니다. 나는 이것을 시도 할 것이다. – Sharmilee

+0

thats ok (btw이 예제에서는 MapViewBallons를 사용하고 있지만 동일한 라인을 따라야합니다. 모든 geopoint가 오버레이에 추가 된 후에 mapview 만 채워야합니다.) – SquiresSquire

+0

시도했습니다. 다소 성능이 향상되었습니다. 그러나, 제 3 유형의 오버레이 용. 그 같은 행동. 그 일을 도와 줄 수 있어요? – Sharmilee