2011-08-31 3 views
0

나는 몇 일 동안 나를 미치게 만든 문제가있다. 나는 웹을 트롤링했지만 간단한 문제가 될 수있는 것에 대한 답을 찾을 수 없다.안드로이드지도 오버레이에서 MapView로 통신하는 방법

지도를 사용하여 특정 위치에 핀을 표시하는 Android 애플리케이션을 작성 중입니다. 사용자가 핀 중 하나를 두 드릴 때 몇 가지 추가 정보가 포함 된 정보 창을 표시하고 싶습니다. 단순한!

나는 MapActivity를 확장 (그리고 지도보기을 포함) 클래스를 가지고 오버레이 확장하는 또 다른 (때문에 핀과 성능의 수에 내가 ItemizedOverlay를 사용하지 않는주의가 너무 느렸다) . 오버레이 클래스에는 사용자가 핀을 가졌는지 여부를 결정하는 히트 테스트 루틴이 있으며, 그렇다면 핀 위의 간단한 직사각형이 세부 사항과 함께 표시됩니다. 그것은 모두 잘 작동하지만 그다지 잘 보이지 않습니다.

시간이 지나면 추가 작업을 수행하는 버튼이 2 개나 포함 된 멋진 말풍선 설명 선을 표시하고 싶습니다. 주변을 둘러보고 난 후에 나는 this blog post를 발견했다. 그리고 그것은 계산서에 꼭 맞는 것처럼 보였다. 이 게시물은 내가 MapActivity에 배치 한 MapView가 ViewGroup이라는 사실을 강조 표시합니다. 즉, 내 말풍선 콜 아웃을 나타내는 추가보기를 포함 할 수 있습니다. 그러나 부분 소스 코드를 따라갈 수는 있지만 문제를 해결하는 데는 문제가 있습니다. 즉 도움이 필요한 부분입니다.

9 패치 이미지와이를 포함 할 레이아웃을 만들었으며 MapActivity 클래스에 코드를 넣으면 테스트 할 때 코드를 표시 할 수 있습니다. 문제는 내가 좌표와 관련 정보를 얻을 수 있도록 사용자가 두드린 핀을 결정할 수 있어야하고 이것이 오버레이에 의해 처리된다는 것입니다.

오버레이의 핀을 탭하면 사용자가 MapActivity를 호출하여 새로운 '콜 아웃 뷰'를 MapView의 관련 텍스트와 함께 적절한 위치에 추가 할 수 있습니까?

업데이트 :

그럼 내가 위를 참조 현재 작업도 구현이 the sample project cited in the blog post 보는 좀 더 시간이 걸렸습니다. 이전에 ItemizedOverlay를 사용하면서이를 기각했지만 접근 방법은 충분했습니다. 기본적으로 MapView를 생성자의 매개 변수로 받아들이도록 Overlay 클래스를 수정하여 이제 MapActivity를 다시 호출하지 않고도 액세스 할 수있게되었습니다. 아주 간단하게 들리지만 오버레이를 떠나 자신이해야 할 일, 즉 마커를 표시하고 부모 MapView를 조작하지 않아도됩니다. 사실 그것이 지금 작동하고 나머지 코딩 작업을 진행할 수 있습니다.

답변

0

나는 당신이 정확히 무엇을 찾고 있는지 잘 모르겠습니다. onTap 중에 어느 지점을 눌렀는지 알아 내고 오버레이를 검색하고지도에서 물건을 인쇄하는 좋은 자습서를 찾을 수 있습니다.

수정 위치에 대한 정보를 표시하려면 모든 정보 구성 요소를 투명도가 보이도록 XML에 배치하고 오버레이에 손을 대면 표시 여부를 변경할 수 있습니다. 이 도움이

희망, 스테판

+0

감사 스테판, 나는 히트 테스트를 정렬하고 지금까지 내가 가지고 얻을이 자습서를 사용하는 것입니다. 결과로 생성되는 정보 구성 요소가 너무 작아서 앞으로 버튼을 추가 할 수 있기를 원하며이 방법으로는 그렇게 할 수 없을 것이라고 생각합니다. – DilbertDave

+0

링크가 작동하지 않습니다. –

관련 문제