2013-01-17 3 views
5

그것이 osmdroid지도보기 오버레이에 그려진 다각형에서의 EventListener를 설정할 수 있습니까? 오버레이에 인쇄하고 그것을 만진 후 Polygon 뒤의 색상을 변경하거나 데이터를 처리하고 싶습니다. 예방법,지도보기에 다각형을 그릴을 작성하고 그 위에 onTouch 이벤트를 넣어

:

poly1의 : ID = 1,337, P1 (0,0), P2 (1,0), ..., PN (0,0)

Poly2 : ID = 42, P1 (10.7), P2 (18,39), ..., PN (10,7)

에 poly1의 터치 후 I는 AHA ID 1,337 누르면 알고 싶어. 그것의 색깔을 바꾸고 싶다.

어떻게 그런 동작을 구현할 수 ? 다각형지도를 수신하는

사용 this을 그릴 수

+0

here를 찾을 수 있습니다. https://stackoverflow.com/questions/39454857/how-to-buffer-a-polyline-in-android-or-draw-a-polygon-around-a-polyline/42664925#42664925 –

답변

0

사용 this 문서는

잘 모르겠어요 터치는 다각형의 한 내부 경우

사용 this 결정하기 위해 클릭 해당 도형 라이브러리는 Android에서 실행될 수 있으므로 세 번째 구성 요소를 자유롭게 바꿀 수 있습니다.

편집 :

오해 질문 및 구글지도와 함께 관련, 죄송합니다. 여기

+0

죄송합니다, 메신저 작업 osmdroid, 당신은 Google API와 함께. Polygon을 이미 그렸습니다. OnTouch 이벤트의 위치를 ​​얻는 방법을 알고 있습니다. 기하학 라이브러리를 사용하여 Polygon에 터치가 있는지 확인하는 유일한 방법입니까? 나는 캔버스 어쩌면 그 도면이 도면 :(하지 경우에 klick를 확인할 수 있습니다 알고 있다는 희망? –

+0

아, 죄송합니다 ... OSMDroid 꼬추 있음을 간과. 요점은 그지도 라이브러리 그냥있는 것입니다, 그 범위는 포함되지 않습니다 기하학 직접/기능으로 그래서 그래, 당신은 어떻게 든 스스로를 제공해야합니다. 그 생각지도 라이브러리의 문서를 체크 아웃 여전히 가치. – Machinarius

+0

좋아 내가 JTS에서 살펴보고 터치 다각형을 얻기 위해 그것을 사용합니다. 그래서 나는 내 문제를 해결할 것입니다 :) 감사합니다 –

0

그릴 다각형 (사각형 예)을 작성하는 방법이다)> (

의 ArrayList bgRectPoints = 새로운 ArrayList를 < 단계;

GeoPoint pt1 = new GeoPoint(-15.953548, 126.036911); 
    bgRectPoints.add(pt1); 
    GeoPoint pt2 = pt1.destinationPoint(10000, 0); 
    bgRectPoints.add(pt2); 
    GeoPoint pt3 = pt2.destinationPoint(10000, 90); 
    bgRectPoints.add(pt3); 
    GeoPoint pt4 = pt3.destinationPoint(10000, 180); 
    bgRectPoints.add(pt4); 
    bgRectPoints.add(pt1); 

    Polygon polygon = new Polygon(); 
    polygon.setPoints(bgRectPoints); 
    polygon.setFillColor(Color.BLACK); 

    mapView.getOverlays().add(polygon); 

터치/탭이 같은 다각형을 초기화 받으려면 :
Polygon polygon = new Polygon(){ 
     @Override 
     public boolean onSingleTapConfirmed(MotionEvent event, MapView mapView) { 
      Toast.makeText(context, "Polygon clicked!",Toast.LENGTH_SHORT).show(); 
      return super.onSingleTapConfirmed(event, mapView); 
     } 
    }; 

당신은지도 그리기 폴리 라인을 위해 아래 링크를 따를 수