Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(Android) google map API v2 에서 지도에 마커설정하기

안드로이드 개발
반응형

안드로이드(Android) google map API v2 에서 지도에 마커설정하기

 

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

 

 

 

지도에 무언가 표현을 하기 위해 표시를 하기위해

마커를 표시한다. 그리고 마커 위에 글도 쓰고 글도 쓰고

여러가지 표현을 한다.

이번 예제는 기본 마커아이콘인 풍선모양이 아닌 원하는

아이콘을 설정해서 표시 할수도 있다.

 

우선 기본 마커표시를 위한 소스는 다음과 같다.

addMarker 함수에 MarkerOptions 객체를 넣으면 된다.

MarkerOptions 객체는 좌표를 설정하고 제목을 넣으면

기본 아이콘이 그림과 같이 표시가 된다.

 

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

두번째 원하는 아이콘을 마커로 사용하고 싶다면

BitmapDescriptionFactory.fromResource() 함수를 사용해 리소스에서

아이콘을 가져와 셋팅을 하면 지도에 지정한 아이콘이 표시된다.

 

MarkerOptions optFirst = new MarkerOptions();
optFirst.snippet("Snippet");
optFirst.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));

맵 마커를 설정하는 함수에 대한 전체 내용은 다음과 같다.

그리고 그 아래에 아래 소스로 구현한 화면이 있다.

 

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) {

			return false;
		}
	});
}

반응형
Posted by 녹두장군1
,