2013年5月7日 星期二

Android程式設計 - Google Maps API v2 可拖曳地圖地標

若要允許使用者移動地圖上的地標,則地標之draggable屬性必須設定為true,並實作GoogleMap之OnMarkerDrag事件監聽器。

OnMarkerDrag事件監聽器有三個回呼方法,onMarkerDragStart()、onMarkerDrag()及onMarkerDragEnd(),如果沒有特別需求,就維持原程式框架即可。

使用者只要按住地標一段時間,地標就會浮起,之後就可開始拖曳調整地標位置。

  m_map = ((SupportMapFragment)
     getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
  MarkerOptions marker2 = new MarkerOptions().
     position(new LatLng(23.95616, 120.68509)).
     title("椰林大道荷花香").
     snippet("休閒散心的景觀步道,兩側高大的大王椰子樹,樹下緊傍著荷花相伴").
     draggable(true).
     icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_marker2));
  m_map.addMarker(marker2);
  m_map.setOnMarkerDragListener(new OnMarkerDragListener(){
     @Override
     public void onMarkerDrag(Marker arg0) {}
     @Override
     public void onMarkerDragEnd(Marker arg0) {}
     @Override
     public void onMarkerDragStart(Marker arg0) {}
     });