728x90

전 포스팅에서 보시면 LatLng을 사용하려면 위도 경도 값을 넣어줘야 마커를 사용할 수 있습니다.

 

안드로이드 스튜디오 구글 맵 사용하기

먼저 구글 맵을 사용하기 전에 구글 API 사이트로 들어가 줍니다. Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 좌측 상..

1d1cblog.tistory.com

만약 가지고 있는 데이터가 위도경도가 아닌 주소명으로 되어있을때 변환하는 방법에 대해 포스팅하려고 합니다.

 

먼저 안드로이드 스튜디오로 가서 AndroidManifest.xml 파일에 인터넷과 위치정보 사용을 허가하는 코드를 추가해줍니다.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>

다음으로 MainActivity.java에 addrToPoint라는 메소드를 만들어줍니다.

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
    private GoogleMap mgoogleMap;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SupportMapFragment supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        supportMapFragment.getMapAsync(this);
    }


    @Override
    public void onMapReady(final GoogleMap googleMap) {
        mgoogleMap = googleMap;
        Context context = this;
        // final LatLng Pocheon = new LatLng(37.894936, 127.200344);   // 마커 추가

        Location cityHallLocation = addrToPoint(context);
        final LatLng Pocheon = new LatLng(cityHallLocation.getLatitude(), cityHallLocation.getLongitude());
        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.position(Pocheon);
        markerOptions.title("포천시청");                                    // 마커 옵션 추가
        googleMap.addMarker(markerOptions);                                 // 마커 등록

        googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
            @Override
            public void onMapLoaded() {
                mgoogleMap.moveCamera(CameraUpdateFactory.newLatLng(Pocheon));
                mgoogleMap.animateCamera(CameraUpdateFactory.zoomTo(20));
            }
        }); // 구글맵 로딩이 완료되면 카메라 위치 조정
    }

    public static Location addrToPoint(Context context) {
        Location location = new Location("");
        Geocoder geocoder = new Geocoder(context);
        List<Address> addresses = null;

        try {
            addresses = geocoder.getFromLocationName("포천시청",3);
        } catch (IOException e) {
            e.printStackTrace();
        }
        if(addresses != null) {
            for(int i = 0 ; i < addresses.size() ; i++) {
                Address lating = addresses.get(i);
                location.setLatitude(lating.getLatitude());
                location.setLongitude(lating.getLongitude());
            }
        }
        return location;
    }
}

 

728x90

+ Recent posts