2011-04-07 6 views
1

지도보기에 다각형을 그려야합니다. 그것은 마치 GeoPoints가 n 개 있고 그 geopoints를 사용하여, n 개의 꼭지점이있는 다각형을 그려야합니다.지도보기에 다각형 그리기 + android

감사합니다.

업데이트 : freza에

덕분에, 지금은 오버레이를 그리는 방법을 알고있다.

오버레이 클래스에는 public boolean onTap(GeoPoint p, MapView mapView)이라는 또 다른 기능이 있습니다. 이제 내가 원하는 것은 사용자가 오버레이를 탭하면 오버레이의 이미지를 변경하고 싶습니다.

예를 들어, 처음에는 오버레이를 표시하기위한 간단한 녹색 원을 그렸습니다. 이제 사용자가 녹색 오버레이에서 탭하면 : 나는 빨간색으로 색을 변경하거나 녹색 원이있는 경우 새 비트 맵을 그려야합니다. 내가 어떻게 할 수 있니?

+1

이 [링크] 참조 (http://stackoverflow.com/questions/2176397/drawing-a-line-path-on-google-maps) – pankajagarwal

답변

0

도움이 될만한 질문입니다. 코드는 다음과

  private void changeMarkers(int noteIndex) { 
    for (int i = 0; i < noteOverlays.size(); i++) { 
     if (i == noteIndex || noteIndex == -1) { 
      Drawable selectedMarker = getResources().getDrawable(
        R.drawable.note_in_map); 
      int selectedMarkerWidth = selectedMarker.getIntrinsicWidth(); 
      int selectedMarkerHeight = selectedMarker.getIntrinsicHeight(); 
      selectedMarker.setBounds(-selectedMarkerWidth/2, 
        -selectedMarkerHeight, selectedMarkerWidth/2, 0);   noteOverlays.getItem(i).setMarker(selectedMarker); 
     } else { 
      Drawable unselectedMarker = getResources().getDrawable(
        R.drawable.note_in_map_notselected); 
      int nonSelectedMarkerWidth = unselectedMarker 
        .getIntrinsicWidth(); 
      int nonSelectedMarkerHeight = unselectedMarker 
        .getIntrinsicHeight(); 
      unselectedMarker 
        .setBounds(-nonSelectedMarkerWidth/2, 
          -nonSelectedMarkerHeight, 
          nonSelectedMarkerWidth/2, 0); 
      noteOverlays.getItem(i).setMarker(unselectedMarker); 
     } 
    } 
    mapView.invalidate(); 
} 
관련 문제