
npm i -S @react-google-maps/api
기본적으로 위도(latitude)와 경도(longitude)로 위치 정보를 불러온다.
예시
import React, { useCallback } from 'react';
import { GoogleMap, useJsApiLoader, MarkerF } from '@react-google-maps/api';
import styled from 'styled-components';
function GoogleMapComponent() {
// 맵 로드시 처음으로 띄워줄 지역의 위도(latitude) 경도(longitude) 정보
const center = {
lat: 37.5511694,
lng: 126.9882266
};
const options = {
zoom: 16,
mapTypeId: 'satellite' // 위성 뷰로 지정
};
// 지도를 불러오는 함수
// useJsApiLoader 함수는 isLoaded, loadError를 return 한다.
const { isLoaded } = useJsApiLoader({
id: 'google-map-script',
// google maps 에서 받은 api key를 전달
googleMapsApiKey: process.env.REACT_APP_GOOGLE_MAP_API_KEY,
});
// 지도를 그릴때 동작하는 함수
// google map의 instance를 사용할 수 있다.
const onLoad = useCallback(map => {
map.setCenter(center);
map.setOptions(options);
map.setHeading(90);
}, []);
// 지도 컴포넌트가 언마운트 되기 전에 해야하는 동작을 아래 함수에 넣는다.
const onUnmount={map => {
"do your stuff before map is unmounted"
}};
return isLoaded && (
<GoogleMap
id="google-map-test"
mapContainerStyle={GoogleMapStyle} // width와 height 는 반드시 지정해줘야 한다.
>
// react 18+ 의 경우에는 MarkerF 등 F가 붙은 컴포넌트를 사용해야한다.
<MarkerF
position={{ lat: 37.5511694, lng: 126.9882266 }} title="marker title1"
/>
</GoogleMap>
);
}
export default React.memo(GoogleMapComponent);
const GoogleMapStyle = {
'height': '100vh',
'width': '100%'
};
예시
<GoogleMap
mapContainerStyle={ GoogleMapStyle }
center=
zoom={16}
/>
예시
<GoogleMap
mapContainerStyle={ GoogleMapStyle }
center=
zoom={16}
mapTypeId={'satellite'}
heading={90}
tilt={45}
/>
유익한 글이었습니다.