나는 몇 일 동안 나를 미치게 만든 문제가있다. 나는 웹을 트롤링했지만 간단한 문제가 될 수있는 것에 대한 답을 찾을 수 없다.안드로이드지도 오버레이에서 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를 조작하지 않아도됩니다. 사실 그것이 지금 작동하고 나머지 코딩 작업을 진행할 수 있습니다.
감사 스테판, 나는 히트 테스트를 정렬하고 지금까지 내가 가지고 얻을이 자습서를 사용하는 것입니다. 결과로 생성되는 정보 구성 요소가 너무 작아서 앞으로 버튼을 추가 할 수 있기를 원하며이 방법으로는 그렇게 할 수 없을 것이라고 생각합니다. – DilbertDave
링크가 작동하지 않습니다. –