이번에는 롱터치 입력시 해당하는 위치에 마커를 띄우는 것을 하도록 하겠습니다.

이번 예제는 아래의 링크를 참고하였습니다.
http://www.androidpub.com/494988
참고로 삭제되는 부분은 현재 문제가 좀 있기 때문에 수정을 추후에 할 예정입니다. (혹은 아예 사용을 하지 않거나요. -_-)




우선 MainActivity가 수정된 모습입니다.

수정된 부분을 중심으로 확인을 하도록 하겠습니다.




위에서 임의의 좌표를 추가를 하는 이유는 다음의 소스를 보시면 아시겠지만 onTap을 할 경우 삭제를 하는 것이 포함이 되어있습니다. 따라서 오버레이 리스트에 포함된 내용이 하나도 없다면 바로 죽어버리는 문제가 있습니다.

여기서는 OverlayItem 클래스를 이용하여 오버레이에 더해주었다는 것이 포인트입니다.




변형된 OverlayItems.java의 파일입니다. 역시 바뀐 부분을 위주로 살펴보도록 하겠습니다.




새롭게 추가된 변수입니다.




수정되거나 새롭게 추가된 내용입니다.
중요한 부분은 onLongPress함수와 onTap(GeoPoint p, MapView mapView)입니다.
onLongPress는 약 3초 이상 터치를 하고 있으면 동작합니다. longTouch 변수를 true로 변환을 해주고요.
onTap에서 if문 통과를 한 다음에는 이를 addOverlay를 이용하여 추가합니다.


실행화면입니다.

저작자 표시 비영리 변경 금지
신고
  1. 별난하루 2011.09.08 18:43 신고

    GPS 예제 잘봤습니다~^^ 다른 분들 GPS 관련 예제들은 복잡한 것도 있고 중간 중간 일부분만 올려주셔 잘 이해가 되지 않았었는데 전체 소스랑 변경 부분들 알아보기 쉽게 포스팅 해주셔서 도움 많이 되었어요~ㅎㅎ 자주 놀러올게요 감사합니다~

    • 가우초 2011.09.08 21:48 신고

      감사합니다.
      그게 왜 그러냐면... 저도 그래서 개고생을 좀 했었거든요... ^^;;;;;;;;

  2. 별난하루 2011.09.09 11:54 신고

    아 그러셨군요ㅎㅎ 어쩐지 배려가 느껴졌습니다 ^^
    질문 하나만 할게요 제가 이 예제랑 다른 예제들을 이용해서 실행하면 현위치 잡고
    지도위에 임의 장소를 터치해서 설정하는 프로그램 만들고 있는데요
    그전까지 잘 되다가 이 GPS 예제에서 현위치 잡는 소스 고치면서 그전 소스랑 문제가 생겼는지
    충돌이 생긴건지 모르겠지만 지도를 드래그 하는 게 좌우만 되고 상하로는 안되거든요...
    여기저기서 검색해봐도 이런 경우는 없는 것 같아서 혹시 이런 경우 있으시면
    답변 좀 부탁드려요~

    • 가우초 2011.09.09 13:37 신고

      그건 소스를 봐야 알 것 같은데요...
      우선 구글에서 검색을 한번 해보셨나요?
      생각보다 간단하게 영어로 검색을 하더라도 자료가 많이 나옵니다.

  3. epic0403 2012.04.11 21:50 신고

    완전한 소스를 가지고 계시는지 알고 싶습니다.
    xml파일이라도 가지고 계시면 메일로 보내주시면 정말 감사하겠습니다.
    아님 좌표라도 쏴주시면 감사하겠습니다.

    • 가우초 2012.04.12 09:49 신고

      저도 오래된 글이라 기억이 잘 나지 않네요.
      xml은 1번과 2번 예제를 참고하시면 될 것 같습니다

+ Recent posts