最終更新:
moonlight_aska 2013年09月29日(日) 18:18:15履歴
Googleマップの画面上をタッチしたイベントを取得するには, GoogleMap.OnMapClickListener/OnMapLongClickListenerインタフェースを利用する.
「Googleマップを表示する」を参照し, Googleマップが表示できるようにする.
1) タップ

2) 長押し

- MainActivity.java
- GoogleMapのインスタンスを取得する.
- GoogleMap#setOnMapClickListenerメソッドで, タップ時のイベントハンドラを登録する.
- onMapClickメソッドに, タップ時の処理を実装する.
- GoogleMap#setOnMapLongClickListenerメソッドで, 長押し時のイベントハンドタを登録する.
- onMapLongClickメソッドに, 長押し時の処理を実装する.
package com.moonlight_aska.android.googlemapv2;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMapClickListener;
import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;
public class MainActivity extends FragmentActivity {
private GoogleMap mMap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMap = ( (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map) ).getMap();
if (mMap != null) {
// タップ時のイベントハンドラ登録
mMap.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "タップ位置\n緯度:" + point.latitude + "\n経度:" + point.longitude, Toast.LENGTH_LONG).show();
}
});
// 長押し時のイベントハンドラ登録
mMap.setOnMapLongClickListener(new OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng point) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "長押し位置\n緯度:" + point.latitude + "\n経度:" + point.longitude, Toast.LENGTH_LONG).show();
}
});
}
}
}
- 動作例
1) タップ

2) 長押し

コメントをかく