
์์น ๊ธฐ๋ฐ ์๋น์ค๋ฅผ ๋ง๋ค๋ค ๋ณด๋ฉด ์ง๋ ๊ธฐ๋ฅ์ ํ์๋ค.
๋งค์ฅ ์ฐพ๊ธฐ, ๋ฐฐ๋ฌ ๊ฒฝ๋ก ํ์, ์ฃผ๋ณ ์ฅ์ ๊ฒ์ ๋ฑ ์ง๋๋ ์๊ฐ๋ณด๋ค ๋ง์ ์ฑ์์ ์ฌ์ฉ๋๋ค.
์ฒ์์ ๋จ์ํ ์ง๋๋ฅผ ๋์ฐ๋ ๊ฒ๋ง ๊ตฌํํ๋ฉด ๋ ์ค ์์๋๋ฐ,
๋ง์ปค, ์ค ๋ ๋ฒจ, ๊ฒฝ๋ก ํ์, ์์น ๊ถํ ์ฒ๋ฆฌ๊น์ง ๊ณ ๋ คํด์ผ ํ ๊ฒ ๋ง์๋ค.
์ด๋ฒ ๊ธ์ React Native์์ ์ง๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ณผ์ ๊ณผ ์ ๋ต์ ์ ๋ฆฌํ ๊ฒ์ด๋ค.
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ์ง๊ด์ ์ธ UI | ์๊ฐ์ ์ผ๋ก ์์น๋ฅผ ๋ฐ๋ก ํ์ธํ ์ ์๋ค |
| ์ฌ์ฉ์ ํธ์ | ์ฃผ์๋ณด๋ค ์ง๋๊ฐ ํจ์ฌ ์ดํดํ๊ธฐ ์ฝ๋ค |
| ๋ค์ํ ํ์ฅ์ฑ | ๊ฒ์, ๊ฒฝ๋ก ์๋ด, ์ฃผ๋ณ ํ์ ๊ธฐ๋ฅ๊น์ง ํ์ฅ ๊ฐ๋ฅ |
npm install react-native-maps
npx pod-install
import MapView, { Marker } from 'react-native-maps';
<MapView
style={{ flex: 1 }}
initialRegion={{
latitude: 37.5665,
longitude: 126.9780,
latitudeDelta: 0.01,
longitudeDelta: 0.01,
}}
>
<Marker
coordinate={{ latitude: 37.5665, longitude: 126.9780 }}
title="์์ธ"
description="์์ธํน๋ณ์"
/>
</MapView>
initialRegion์ผ๋ก ์ง๋ ์์ ์์น์ ์ค ๋ฒ์๋ฅผ ์ค์ ํ๋ค.Marker๋ฅผ ์ฌ์ฉํด ํน์ ์์น๋ฅผ ํ์ํ ์ ์๋ค.์์น ๊ถํ์ ๋จผ์ ์์ฒญํด์ผ ํ๋ค.
react-native-permissions๋ Expo ํ๊ฒฝ์ด๋ผ๋ฉด expo-location์ ์ฌ์ฉํ ์ ์๋ค.
npm install expo-location
import * as Location from 'expo-location';
const getCurrentLocation = async () => {
const { status } = await Location.requestForegroundPermissionsAsync();
if (status !== 'granted') return;
const location = await Location.getCurrentPositionAsync({});
console.log(location.coords);
};
์ด ๊ฐ์ Marker ์ขํ๋ก ๋ฃ์ผ๋ฉด ํ์ฌ ์์น๋ฅผ ํ์ํ ์ ์๋ค.
๊ฒฝ๋ก๋ฅผ ๋ณด์ฌ์ฃผ๋ ค๋ฉด Google Directions API ๊ฐ์ ์ธ๋ถ API๋ฅผ ์ฌ์ฉํ๋ค.
์๋ต์ผ๋ก ๋ฐ์ ์ขํ ๋ฆฌ์คํธ๋ฅผ Polyline ์ปดํฌ๋ํธ๋ก ๊ทธ๋ฆฐ๋ค.
import { Polyline } from 'react-native-maps';
<Polyline
coordinates={[
{ latitude: 37.5665, longitude: 126.9780 },
{ latitude: 37.5700, longitude: 126.9920 },
]}
strokeColor="#007bff"
strokeWidth={4}
/>
| ๊ธฐ๋ฅ | ์ด์ |
|---|---|
| ์ค ์ ์ค์ฒ ์ ํ | ์ฌ์ฉ์๊ฐ ๋๋ฌด ๋ฉ๋ฆฌ/๊ฐ๊น๊ฒ ๋ณด์ง ์๋๋ก |
| ๋ง์ปค ์ปค์คํฐ๋ง์ด์ง | ๋ธ๋๋ ์์ด์ฝ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์ ์๋ค |
| ํด๋ฌ์คํฐ๋ง | ๋ง์ปค๊ฐ ๋ง์ ๋ ์ฑ๋ฅ๊ณผ ๊ฐ๋ ์ฑ ๊ฐ์ |
| ์์น ๋ฒํผ | ์ฌ์ฉ์๊ฐ ์ธ์ ๋ ํ์ฌ ์์น๋ก ์ด๋ํ ์ ์๋๋ก |
๋ฐฐ๋ฌ ๊ฒฝ๋ก ํ์ ๊ธฐ๋ฅ์ ๋ง๋ค์์ ๋,
๋จ์ํ ๋ง์ปค์ ์ ๋ง ํ์ํ๋ฉด ๋ ์ค ์์๋ค.
ํ์ง๋ง ์ค์ ์ฌ์ฉ ํ๊ฒฝ์์๋
๊ทธ๋์ ๋ง์ปค๋ฅผ ์ต์ํํ๊ณ , Polyline ๋ ๋๋ง ์ต์ ํ๋ฅผ ์ ์ฉํ๊ณ ,
์์น ๊ฐฑ์ ์ฃผ๊ธฐ๋ฅผ ์กฐ์ ํด์ ๋ฐฐํฐ๋ฆฌ ์๋ชจ๋ ์ค์๋ค.
๊ทธ ๊ฒฐ๊ณผ ์ง๋๊ฐ ํจ์ฌ ๋ถ๋๋ฝ๊ฒ ๋์ํ๊ฒ ๋๋ค.
๐บ๏ธ ์ง๋๋ ๋จ์ํ ์๊ฐ ์์๊ฐ ์๋๋ผ, ์ค์๊ฐ ์ ๋ณด์ UX๊ฐ ๊ฒฐํฉ๋ ๊ธฐ๋ฅ์ด๋ค.