Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(Android) 맵구현시 해당하는 이벤트 구현 예제

안드로이드 개발
반응형

안드로이드(Android) 맵구현시 해당하는 이벤트 구현 예제

 

개발환경 : window 7 64bit, Eclipse Kepler, Android 4.2.2

 

이번에 구현 예제는 맵에서 주로 사용하는 이벤트들에 대한 예제이다.

어떤 이벤트가 있으며 어떻게 사용하는지 간단하게 함수로 화면에

지도 위치값을 나타내주는 예제를 구현하였다.

 

 

// 마커 클릭 리스너
mGoogleMap.setOnMarkerClickListener(new OnMarkerClickListener() {

	public boolean onMarkerClick(Marker marker) {
		String text = "[마커 클릭 이벤트] latitude ="
                + marker.getPosition().latitude + ", longitude ="
				+ marker.getPosition().longitude;
		Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG)
				.show();
		return false;
	}
});

 

 

// 클릭이벤트
mGoogleMap.setOnMapClickListener(new OnMapClickListener() {

	public void onMapClick(LatLng point) {
		String text = "[단시간 클릭시 이벤트] latitude =" 
                + point.latitude + ", longitude ="
				+ point.longitude;
		Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG)
				.show();
	}
});

 

 

// 클릭을 오래 했을때 
mGoogleMap.setOnMapLongClickListener(new OnMapLongClickListener() {

	public void onMapLongClick(LatLng point) {
		String text = "[장시간 클릭시 이벤트] latitude =" 
                                                                + point.latitude + ", longitude ="
				+ point.longitude;
		Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG)
				.show();
	}
});

 

 

// 카메라 이동 확대 축소가 있을때 이벤트 발생
mGoogleMap.setOnCameraChangeListener(new OnCameraChangeListener() {

	public void onCameraChange(CameraPosition position) {
		LatLng point = position.target;
		String text = "[카메라 이동 이벤트] latitude =" 
                 + point.latitude + ", longitude ="
				+ point.longitude;
		Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG)
				.show();
	}
});

 

아래는 위의 내용을 구현한 함수 전체 내용이다.

 

private void init() {

	Intent getI = getIntent();

	String title = getI.getStringExtra("marker test 1");
	String coordinates[] = { "37.517180", "127.041268" };
	double lat = Double.parseDouble(coordinates[0]);
	double lng = Double.parseDouble(coordinates[1]);

	LatLng position = new LatLng(lat, lng);
	GooglePlayServicesUtil.isGooglePlayServicesAvailable(MainActivity.this);

	mGoogleMap = ((SupportMapFragment) getSupportFragmentManager()
			.findFragmentById(R.id.map)).getMap();

	// 터치이벤트 설정
	mGoogleMap.setOnMapClickListener(this);

	// 맵 위치이동.
	mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(position, 15));

	// 첫번째 마커 설정.
	MarkerOptions optFirst = new MarkerOptions();
	optFirst.position(position);// 위도 • 경도
	optFirst.title(title);// 제목 미리보기
	optFirst.snippet("Snippet");
	optFirst.icon(BitmapDescriptorFactory
			.fromResource(R.drawable.ic_launcher));
	mGoogleMap.addMarker(optFirst).showInfoWindow();

	// 두번째 마커 설정.
	MarkerOptions optSecond = new MarkerOptions();
	optSecond.position(new LatLng(37.521280, 127.041268));// 위도 • 경도
	optSecond.title(title); // 제목 미리보기
	optSecond.snippet("Snippet2");
	mGoogleMap.addMarker(optSecond).showInfoWindow();

	// 마커 클릭 리스너
	mGoogleMap.setOnMarkerClickListener(new OnMarkerClickListener() {

		public boolean onMarkerClick(Marker marker) {
			String text = "[마커 클릭 이벤트] latitude =" 
                                + marker.getPosition().latitude + ", longitude ="
					+ marker.getPosition().longitude;
			Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG)
					.show();
			return false;
		}
	});

	// 클릭이벤트
	mGoogleMap.setOnMapClickListener(new OnMapClickListener() {

		public void onMapClick(LatLng point) {
			String text = "[단시간 클릭시 이벤트] latitude =" 
                                + point.latitude + ", longitude ="
					+ point.longitude;
			Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG)
					.show();
		}
	});

	// 클릭을 오래 했을때 
	mGoogleMap.setOnMapLongClickListener(new OnMapLongClickListener() {

		public void onMapLongClick(LatLng point) {
			String text = "[장시간 클릭시 이벤트] latitude =" + point.latitude + ", longitude ="
		+ point.longitude;
			Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG)
					.show();
		}
	});
	
	// 카메라 이동 확대 축소가 있을때 이벤트 발생
	mGoogleMap.setOnCameraChangeListener(new OnCameraChangeListener() {

		public void onCameraChange(CameraPosition position) {
			LatLng point = position.target;
			String text = "[카메라 이동 이벤트] latitude =" 
                                 + point.latitude + ", longitude ="
					+ point.longitude;
			Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG)
					.show();
		}
	});

}
반응형
Posted by 녹두장군1
,