실행환경

 Desktop

 조립식

 CPU

 Intel(R) Core(TM) i7-3770 3.50GHz

 Memory

 4 GB

 OS

 Window 7 Professional 32bit

 Java

 1.7.0_51

 Android

 SDK : 4.4.2 (KitKat), Google APIs 4.4.2

 TEST : Galaxy S3 4.3(Jelly Bean)

 WebServer

 Apache Tomcat 7.0

 DB

 MySQL 5.6.15


GoogleMaps v2 Marker 추가하기

구글맵이 화면에 올라와있다고 가정하에 아래 코드 작성.
LatLng loc = new LatLng(x, y); // 위치 좌표 설정
MarkerOptions marker = new MarkerOptions().position(loc);
mGoogleMap.addMarker(marker); // 마커표시
예제
public class MapTest extends FragmentActivity {

	// 초기화
	GoogleMap mGoogleMap; // 구글맵 객체
	LatLng loc = new LatLng(0, 0); // 위치 좌표 설정
	CameraPosition cp = new CameraPosition.Builder().target((loc)).zoom(16)
			.build();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_map_test);

		// 구글 맵 객체 생성
		mGoogleMap = ((SupportMapFragment) getSupportFragmentManager()
				.findFragmentById(R.id.map)).getMap();

		moveDisplay(35.864144, 129.194698, 19);
		addMarker(35.864144, 129.194698);


	// 마커 추가하기
	void addMarker(double x, double y) {
		LatLng loc = new LatLng(x, y); // 위치 좌표 설정
		MarkerOptions marker = new MarkerOptions().position(loc);
		mGoogleMap.addMarker(marker); // 마커표시
	}

	// 화면 이동하기
	void moveDisplay(double x, double y, int zoom) {
		LatLng loc = new LatLng(x, y); // 위치 좌표 설정
		CameraPosition cp = new CameraPosition.Builder().target((loc))
				.zoom(zoom).build();
		mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cp));
	}
}

GoogleMaps v2 Marker 삭제하기

dddd


 실행환경

 Desktop

 조립식

 CPU

 Intel(R) Core(TM) i7-3770 3.50GHz

 Memory

 4 GB

 OS

 Window 7 Professional 32bit

 Java

 1.7.0_51

 Android

 SDK : 4.4.2 (KitKat), Google APIs 4.4.2

 TEST : Galaxy S3 4.3(Jelly Bean)

 WebServer

 Apache Tomcat 7.0

 DB

 MySQL 5.6.15


문제점

  • 구글맵에 여러개의 마커를 추가하려고한다.
  • 이동경로를 표시하기 위해 마커를 사용하고, 마커를 찍는 방법은 다른 스레드를 생성하여 실행한다.


해결방안

구글맵의 문제가 아니었다. 안드로이드에서는 화면 UI를 변경하려면 하나의 액티비티에서만 가능하다.

그렇게 때문에 main이 아닌 다른 스레드에서 마커를 찍어주니 에러가 발생하였다.

그래서 Handler를 만들어주고 다른 Thread에서 호출하였다.


+ Recent posts