2012-08-01 4 views
2

안드로이드 SDK 2.3.3 구글 맵 V2히트 맵 - 간단한 'HeatPoint'Google지도 안드로이드

현재 내가 그리기있어 원 오버레이를 생성하고,지도보기에 추가. 크기는 특정 값으로 지정되며 다른 값으로 원의 RadialGradient 색상을 결정하려고합니다.

  circle.setShader(new RadialGradient(pt.x, pt.y, 40, Color.argb(150, 252, 5, 5), Color.argb(60, 234, 231, 0), TileMode.MIRROR)); 
      canvas.drawCircle(pt.x, pt.y, radius, circle); 

하지만 정상적인 열 포인트 맵과 비슷한 모양을 선호합니다.

나는 (나는 아직도 모양처럼 원형하는 것)

desired heat map

내가 아마도 그리기 생각하고 달성하고 싶은 무엇

current heat map

현재 좀 더 일반적인 히트 맵보기를 얻기 위해 눈에 보이는 더 큰 영역으로 현재의 바로 아래에 원을 그리지 만, 이것은 모바일 장치에서 다시 수행해야한다는 것을 고려할 때 성능에 영향을 미칩니다 확대 또는 축소 동작마다.

+1

어떤 수준의 데이터가 있습니까? 개별 점을 나타내는 표식의 모양을 개선하려고하거나 여러 점의 빈도에 대한 정보가 있습니까? – Computerish

+0

Nah 나는 여러 점을 가지고 있지 않습니다. 이것은 순수한 관점에서 나온 것입니다. 원 뒤에 추가 오버레이를 추가하면 오버 헤드를 피하려는 더 나은 '룩'을 얻기에 충분할 것입니다. 아마도 Drawing 클래스 라이브러리를 읽는 것이 가장 좋은 방법 일 것입니다. – Ash

+0

뭐야? Android 용 Google지도 v2에서 이와 같은 작업을 할 수 없습니다. 서클에는 setShader 메소드가 없습니다. 당신이하고있는 일을 설명해 주시겠습니까? –

답변

0

가 몇 가지 명백한 옵션이 여기에 있습니다, 그리고 나뿐만 아니라이 작업을 수행하는 많은 비 확실한 방법이 있습니다 확신 : 당신이

  • 로드 동심을 제안

    • 여러 개의 동심원을 그리기가 이미지에서 원형 패턴을 가져 와서 그리십시오. (렌더링은 적지 만 이미지를로드해야합니다.)
    • BitmapShader을 사용하여 찾고자하는 것과 일치하는 사용자 정의 그라디언트로 단일 원을 그립니다. http://developer.android.com/reference/android/graphics/BitmapShader.html

    불행히도 이러한 옵션 중 어떤 것이 최상의 성능을 제공할지 모르겠으므로 직접 테스트해야 할 것입니다. 히트 맵 포인트가 많으면 나중 두 옵션 중 하나가 더 효율적일 것으로 추측됩니다. 그러나 이는 추측 이상의 것입니다.

  • +0

    답장을 보내 주셔서 감사합니다. – Ash