[React Native] react native maps


  • this ordered seed list will be replaced by the toc

1. <MapView /> Component API

๐Ÿš—ย Props

PropTypeDefaultNoteย ย ย 
providerstringย ๋งต ๊ณต๊ธ‰์ž๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ Google Maps์ด๋ฉฐ, google ๋˜๋Š” apple๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ย ย ย 
regionRegionย ์ดˆ๊ธฐ ์ง€์—ญ์„ ์„ค์ •ย ย ย 
initialRegionRegionย region๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. region์ด ์„ค์ •๋˜๋ฉด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.ย ย ย 
cameraCameraย ์ดˆ๊ธฐ ์นด๋ฉ”๋ผ ์œ„์น˜์™€ ์คŒ ๋ ˆ๋ฒจ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.ย ย ย 
initialCameraCameraย camera์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. camera๊ฐ€ ์„ค์ •๋˜๋ฉด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.ย ย ย 
mapPaddingEdgePaddingย ๋งต ํŒจ๋”ฉ ๊ฐ’์„ ์„ค์ •ย ย ย 
paddingAdjustmentBehaviorโ€˜alwaysโ€™โ€˜automaticโ€™โ€˜neverโ€™โ€˜neverโ€™paddingAdjustmentBehavior ์†์„ฑ์€ ์ง€๋„๋ฅผ ๋ž˜ํ•‘ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ํŒจ๋”ฉ ์กฐ์ • ๋ฐฉ๋ฒ•์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ iOS ๊ธฐ๊ธฐ์—์„œ๋งŒ ์ง€์›ย 
liteModeBooleanfalse๋งต ๋ผ์ดํŠธ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
mapTypeStringโ€œstandardโ€๋งต ํƒ€์ž…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. standard, satellite, hybrid ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉย ย ย 
customMapStyleArrayย ๋งต์˜ ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํƒ€์ผ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.ย ย ย 
userInterfaceStyleโ€˜lightโ€™โ€˜darkโ€™ย iOS ๊ธฐ๊ธฐ์—์„œ ์ง€๋„์˜ ํ…Œ๋งˆ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ.ย ย 
showsUserLocationBooleanfalse์‚ฌ์šฉ์ž ์œ„์น˜๋ฅผ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ • NOTE: You need runtime location permissions prior to setting this to true, otherwise it is going to fail silently! Checkout the excellent https://github.com/zoontek/react-native-permissions for this.ย ย ย 
userLocationPriorityโ€˜balancedโ€™โ€˜highโ€™โ€˜lowโ€™โ€˜passiveโ€™โ€˜highโ€™์‚ฌ์šฉ์ž ์œ„์น˜ ์—…๋ฐ์ดํŠธ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ showsUserLocation ์†์„ฑ์ด true๋กœ ์„ค์ •๋˜์–ด ์žˆ์„ ๋•Œ๋งŒ ์œ ํšจ See Google APIs documentation. Note: Android only.
userLocationUpdateIntervalNumber5000mapView ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์œ„์น˜๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ showsUserLocation ์†์„ฑ์ด true๋กœ ์„ค์ •๋˜์–ด ์žˆ์„ ๋•Œ๋งŒ ์œ ํšจ See Google APIs documentation. Note: Android only.ย ย ย 
userLocationFastestIntervalNumber5000์‚ฌ์šฉ์ž์˜ ์œ„์น˜๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ์ตœ์†Œ ๊ฐ„๊ฒฉ์„ ์„ค์ •. See https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html. Note: Android only.ย ย ย 
userLocationAnnotationTitleStringย ์‚ฌ์šฉ์ž ์œ„์น˜ ๋งˆ์ปค ์ œ๋ชฉ์„ ์„ค์ •. Note: iOS only.ย ย ย 
followsUserLocationBooleanfalse๋งต ๋ทฐ๋ฅผ ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ž๋™์œผ๋กœ ์ด๋™์‹œํ‚ค๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ Note: Apple Maps only.ย ย ย 
userLocationCalloutEnabledBooleanfalse์‚ฌ์šฉ์ž์˜ ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋งˆ์ปค์— ๋Œ€ํ•œ ์ฝœ์•„์›ƒ(๋งํ’์„ ) ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ Note: Apple Maps only.ย ย ย 
showsMyLocationButtonBooleantrue๋‚˜์˜ ์œ„์น˜ ๋ฒ„ํŠผ์„ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
showsPointsOfInterestBooleantrue๊ด€์‹ฌ ์ง€์ ์„ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
showsCompassBooleantrue๋‚˜์นจ๋ฐ˜์„ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
showsScaleBooleantrue๋งต ์Šค์ผ€์ผ์„ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •. Note: Apple Maps only.ย ย ย 
showsBuildingsBooleantrue๊ฑด๋ฌผ์„ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
showsTrafficBooleanfalse๊ตํ†ต ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
showsIndoorsBooleantrue์‹ค๋‚ด ์ง€๋„๋ฅผ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
showsIndoorLevelPickerBooleanfalse์‹ค๋‚ด ์ง€๋„ ๋ ˆ๋ฒจ ์„ ํƒ๊ธฐ๋ฅผ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ • (either Android or iOS with PROVIDER_GOOGLE).ย ย ย 
zoomEnabledBooleantrue๋งต ์คŒ์„ ํ—ˆ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
zoomTapEnabledBooleantruezoomTapEnabled ์†์„ฑ์€ ๋”๋ธ” ํƒญ(double-tap) ์ œ์Šค์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€๋„๋ฅผ ํ™•๋Œ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉย ย ย 
zoomControlEnabledBooleantruezoomControlEnabled ์†์„ฑ์€ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๊ธฐ์—์„œ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” ์คŒ ์ปจํŠธ๋กค๋Ÿฌ์˜ ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉย ย ย 
minZoomLevelNumber0minZoomLevel ์†์„ฑ์€ ์ง€๋„๊ฐ€ ํ‘œ์‹œํ•˜๋Š” ์ตœ์†Œ ์คŒ ๋ ˆ๋ฒจ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋Œ.ย ย ย 
maxZoomLevelNumber20maxZoomLevel ์†์„ฑ์€ ์ง€๋„๊ฐ€ ํ‘œ์‹œํ•˜๋Š” ์ตœ๋Œ€ ์คŒ ๋ ˆ๋ฒจ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋Œ.ย ย ย 
rotateEnabledBooleantrue๋งต ํšŒ์ „์„ ํ—ˆ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
scrollEnabledBooleantrue๋งต ์Šคํฌ๋กค์„ ํ—ˆ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
scrollDuringRotateOrZoomEnabledBooleantrue๋งต ํ”ผ์น˜ ์ œ์Šค์ฒ˜๋ฅผ ํ—ˆ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
pitchEnabledBooleantruepitchEnabled ์†์„ฑ์€ ์ง€๋„๋ฅผ ๊ธฐ์šธ์ด๋Š”(pitching) ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉย ย ย 
toolbarEnabledBooleantrueAndroid only If false ๋งต ํˆด๋ฐ”๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •, make sure to https://github.com/react-native-maps/react-native-maps/issues/4403#issuecomment-1219856534ย ย ย 
cacheEnabledBooleanfalse๋งต ํƒ€์ผ ์บ์‹ฑ์„ ํ—ˆ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
loadingEnabledBooleanfalse๋งต ๋กœ๋”ฉ ์ค‘์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
loadingIndicatorColorColor#606060๋งต ๋กœ๋”ฉ ์ค‘ ๋ฐฐ๊ฒฝ์ƒ‰์„ ์„ค์ •, default to #606060.ย ย ย 
loadingBackgroundColorColor#FFFFFF๋งต ๋กœ๋”ฉ ์ค‘ ์ธ๋””์ผ€์ดํ„ฐ ์ƒ‰์ƒ์„ ์„ค์ •, default to #FFFFFF.ย ย ย 
tintColorcolornulltintColor ์†์„ฑ์€ iOS ๊ธฐ๊ธฐ์—์„œ ์ง€๋„์˜ ํ‹ดํŠธ(tint) ์ƒ‰์ƒ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉย ย ย 
moveOnMarkerPressBooleantrue๋งˆ์ปค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ๋งต์„ ์ด๋™ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ย ย ย 
legalLabelInsetsEdgeInsetsย ๋งต ๋ ˆ์ด๋ธ”์—์„œ ๋ฒ—์–ด๋‚  ์—ฌ๋ฐฑ์„ ์„ค์ •ย ย ย 
kmlSrcstringย kmlSrc ์†์„ฑ์€ KML(Keyhole Markup Language) ํŒŒ์ผ์˜ URL์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉย ย ย 
compassOffsetPointย compassOffset ์†์„ฑ์€ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๊ธฐ์—์„œ ๋‚˜์นจ๋ฐ˜(compass) ๋ชจ์–‘์˜ ์•„์ด์ฝ˜์˜ ์œ„์น˜๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉย ย ย 
isAccessibilityElementBooleanfalseisAccessibilityElement ์†์„ฑ์€ ์ง€๋„๊ฐ€ ์ ‘๊ทผ์„ฑ(accessibility) ์š”์†Œ๋กœ ์ธ์‹๋˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉย ย ย 

๐Ÿš—Events

To access event data, you will need to use e.nativeEvent. For example, onPress={e => console.log(e.nativeEvent)} will log the entire event object to your console.

Event NameReturnsNotes
onMapReadyย onMapReady ์†์„ฑ์€ ์ง€๋„๊ฐ€ ๋ Œ๋”๋ง๋˜๊ณ  ์ค€๋น„๋œ ํ›„์— ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
onKmlReadyKmlContainerKML ๋ ˆ์ด์–ด๊ฐ€ ์ค€๋น„๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •
onRegionChange(Region, {isGesture: boolean})์ง€์—ญ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
onRegionChangeComplete(Region, {isGesture: boolean})์ง€์—ญ ๋ณ€๊ฒฝ์ด ์™„๋ฃŒ๋  ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
onUserLocationChange{ coordinate: Location }์‚ฌ์šฉ์ž ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •
onPress{ coordinate: LatLng, position: Point }๋งต์ด ๋ˆŒ๋ ธ์„ ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •
onDoublePress{ coordinate: LatLng, position: Point }onDoublePress ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€๋„๋ฅผ ๋”๋ธ” ํƒญ(double tap)ํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
onPanDrag{ coordinate: LatLng, position: Point }onPanDrag ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€๋„๋ฅผ ๋“œ๋ž˜๊ทธํ•˜๊ฑฐ๋‚˜ ํ„ฐ์น˜ํ•˜๊ณ  ์žˆ์„ ๋•Œ ์ง€๋„์˜ ์ค‘์‹ฌ ์ขŒํ‘œ๋ฅผ ๊ณ„์† ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
onPoiClick{ coordinate: LatLng, position: Point, placeId: string, name: string }onPoiClick ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€๋„ ์œ„์˜ POI(Point of Interest)๋ฅผ ํด๋ฆญํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
onLongPress{ coordinate: LatLng, position: Point }๋งต์ด ๊ธธ๊ฒŒ ๋ˆŒ๋ ธ์„ ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •
onMarkerPressย ๋งˆ์ปค๊ฐ€ ๋ˆŒ๋ ธ์„ ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •
onMarkerSelectย ๋งˆ์ปค๊ฐ€ ์„ ํƒ๋  ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •
onMarkerDeselectย ๋งˆ์ปค ์„ ํƒ์ด ํ•ด์ œ๋  ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •
onCalloutPressย ๋งˆ์ปค ์ฝœ์•„์›ƒ์ด ๋ˆŒ๋ ธ์„ ๋•Œ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์„ค์ •
onMarkerDragStart{ coordinate: LatLng, position: Point }onMarkerDragStart ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์ปค๋ฅผ ๋“œ๋ž˜๊ทธํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
onMarkerDrag{ coordinate: LatLng, position: Point }onMarkerDrag ์†์„ฑ์€ ๋งˆ์ปค๋ฅผ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
onMarkerDragEnd{ coordinate: LatLng, position: Point }onMarkerDragEnd ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์ปค ๋“œ๋ž˜๊ทธ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ๋งˆ์ปค๋ฅผ ๋†“์„ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
onIndoorLevelActivatedIndoorLevelonIndoorLevelActivated ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€๋„์˜ ์‹ค๋‚ด ๋ ˆ๋ฒจ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
onIndoorBuildingFocusedIndoorBuildingonIndoorBuildingFocused ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค๋‚ด ๊ฑด๋ฌผ์„ ํด๋ฆญํ•˜์—ฌ ํฌ์ปค์Šค๋ฅผ ๋งž์ถœ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

๐Ÿš—ย Methods

Method NameArgumentsNotes
getCameraย getCamera ์†์„ฑ์€ ํ˜„์žฌ ์ง€๋„ ๋ทฐ์˜ ์นด๋ฉ”๋ผ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์„œ๋“œ.
getCamera ๋ฉ”์„œ๋“œ๋Š” Promise ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ด Promise๋Š” ์นด๋ฉ”๋ผ ์ •๋ณด๋ฅผ ๋‹ด์€ ๊ฐ์ฒด๋ฅผ resolveํ•ฉ๋‹ˆ๋‹ค. ์นด๋ฉ”๋ผ ์ •๋ณด ๊ฐ์ฒด์—๋Š” ํ˜„์žฌ ์ง€๋„ ๋ทฐ์˜ ์ค‘์‹ฌ ์ขŒํ‘œ, ์คŒ ๋ ˆ๋ฒจ, ๊ธฐ์šธ๊ธฐ, ๋ฐฉํ–ฅ ๋“ฑ์ด ํฌํ•จย ย 
animateCameracamera: Camera, { duration: Number }animateCamera ์†์„ฑ์€ ์ง€๋„ ๋ทฐ์˜ ์นด๋ฉ”๋ผ๋ฅผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์• ๋‹ˆ๋ฉ”์ด์…˜ํ•˜์—ฌ ์ด๋™์‹œํ‚ค๋Š” ๋ฉ”์„œ๋“œ
setCameracamera: Camera, { duration: Number }setCamera ์†์„ฑ์€ ์ง€๋„ ๋ทฐ์˜ ์นด๋ฉ”๋ผ๋ฅผ ์ฆ‰์‹œ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

setCamera ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค:

camera: ๋ณ€๊ฒฝํ•  ์นด๋ฉ”๋ผ ์ •๋ณด๋ฅผ ๋‹ด์€ ๊ฐ์ฒด ๋ณ€๊ฒฝํ•  ์นด๋ฉ”๋ผ ์ •๋ณด ๊ฐ์ฒด์—๋Š” ๋ณ€๊ฒฝํ•  ์ง€๋„ ๋ทฐ์˜ ์ค‘์‹ฌ ์ขŒํ‘œ, ์คŒ ๋ ˆ๋ฒจ, ๊ธฐ์šธ๊ธฐ, ๋ฐฉํ–ฅ ๋“ฑ์ด ํฌํ•จ | | animateToRegion | region: Region, duration: Number | animateToRegion ์†์„ฑ์€ ํ˜„์žฌ ์ง€๋„ ๋ทฐ์˜ ์นด๋ฉ”๋ผ๋ฅผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์• ๋‹ˆ๋ฉ”์ด์…˜ํ•˜์—ฌ ์ง€์ •ํ•œ ์ง€์—ญ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค.

animateToRegion ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค:

region: ์ง€๋„ ๋ทฐ๊ฐ€ ์ด๋™ํ•  ์ง€์—ญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด duration: ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ง„ํ–‰ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž (๋ฐ€๋ฆฌ์ดˆ) ๋ณ€๊ฒฝํ•  ์ง€์—ญ ์ •๋ณด ๊ฐ์ฒด์—๋Š” ๋ณ€๊ฒฝํ•  ์ง€๋„ ๋ทฐ์˜ ์ค‘์‹ฌ ์ขŒํ‘œ, ๊ฐ€๋กœ/์„ธ๋กœ ๋ฐฉํ–ฅ ๊ฑฐ๋ฆฌ, ์คŒ ๋ ˆ๋ฒจ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. | | getMapBoundaries | | Promise<{northEast: LatLng, southWest: LatLng}> | | setMapBoundaries | northEast: LatLng, southWest: LatLng | setMapBoundaries ์†์„ฑ์€ ์ง€๋„ ๋ทฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ์„ค์ •ํ•˜์—ฌ, ์ด๋ฅผ ๋ฒ—์–ด๋‚œ ์ง€์—ญ์œผ๋กœ ์ด๋™ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ๋ฉ”์„œ๋“œ | | setIndoorActiveLevelIndex | levelIndex: Number | setIndoorActiveLevelIndex ์†์„ฑ์€ ์ง€๋„ ๋ทฐ์— ํ‘œ์‹œ๋˜๋Š” ์‹ค๋‚ด ์ง€๋„์˜ ํ™œ์„ฑ ๋ ˆ๋ฒจ์„ ๋ณ€๊ฒฝ | | fitToElements | options: { edgePadding: EdgePadding, animated: Boolean } | fitToElements ์†์„ฑ์€ ์ฃผ์–ด์ง„ ๋งˆ์ปค, ๊ฒฝ๋กœ, ๋ชจ์–‘, ์˜์—ญ ๋˜๋Š” ์‹ค๋‚ด ์ง€๋„์˜ ๋ชจ๋“  ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋ชจ๋‘ ๋ณด์ด๋„๋ก ์ง€๋„๋ฅผ ํ™•๋Œ€ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•ฉ๋‹ˆ๋‹ค.

fitToElements ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค:

edgePadding: ์ง€๋„ ๊ฐ€์žฅ์ž๋ฆฌ์™€ ์—˜๋ฆฌ๋จผํŠธ ๊ฐ„์˜ ํŒจ๋”ฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ, ์œ„์ชฝ ๋ฐ ์•„๋ž˜์ชฝ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” top, right, bottom, left ์†์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ธ { top: 0, right: 0, bottom: 0, left: 0 }์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

animated: ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€์šธ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด true์ด๋ฉด ์ง€๋„๊ฐ€ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ๋˜๋ฉฐ, false์ด๋ฉด ์ฆ‰์‹œ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ true์ž…๋‹ˆ๋‹ค.

duration: ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ง€์† ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค. animated ๊ฐ’์ด true์ผ ๋•Œ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 500์ž…๋‹ˆ๋‹ค.

region: ์ง€๋„๊ฐ€ ๋ณด์—ฌ์ค„ ์ง€์—ญ์„ ์ง€์ •ํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ์ง€์ •๋˜๋ฉด ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ํฌํ•จ๋œ ์ง€์—ญ์ด ์•„๋‹Œ ์ด ์ง€์—ญ์œผ๋กœ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค.ย ย ย ย 
ย fitToSuppliedMarkersmarkerIDs: String[], options: { edgePadding: EdgePadding, animated: Boolean }fitToSuppliedMarkers?: Arrayboolean - ์ง€๋„๋ฅผ ํ™•๋Œ€ / ์ถ•์†Œํ•˜์—ฌ ์ง€์ •๋œ ๋งˆ์ปค๊ฐ€ ๋ชจ๋‘ ๋ณด์ด๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Array๋กœ ์ „๋‹ฌ๋œ ๋งˆ์ปค ID์˜ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ boolean ๊ฐ’ true๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋งˆ์ปค๊ฐ€ ๋ณด์ด๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
ย fitToCoordinatescoordinates: Array, options: { edgePadding: EdgePadding, animated: Boolean }fitToCoordinates?: Array - ์ง€๋„๋ฅผ ํ™•๋Œ€ / ์ถ•์†Œํ•˜์—ฌ ๋ชจ๋“  ์ง€์ •๋œ ์ง€๋ฆฌ ์ขŒํ‘œ๊ฐ€ ๋ณด์ด๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Array๋กœ ์ „๋‹ฌ๋œ LatLng ๊ฐ์ฒด์˜ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.ย 
options?: { edgePadding?: EdgePadding, animated?: boolean } - ์ง€๋„ ํ™•๋Œ€ / ์ถ•์†Œ์— ๋Œ€ํ•œ ์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. edgePadding ์†์„ฑ์€ ์ง€๋„ ๊ฒฝ๊ณ„์™€ ํ™”๋ฉด ๊ฒฝ๊ณ„ ๊ฐ„์˜ ์—ฌ๋ฐฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” EdgePadding ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. animated ์†์„ฑ์€ ์ง€๋„ ํ™•๋Œ€ / ์ถ•์†Œ๊ฐ€ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ์ง„ํ–‰๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. animated ๊ฐ’์ด ์ƒ๋žต๋˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ true์ž…๋‹ˆ๋‹ค.ย ย ย ย 
ย addressForCoordinatecoordinate: LatLngaddressForCoordinate๋Š” MapView์—์„œ ํŠน์ • ์œ„์น˜์˜ ์ฃผ์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋Œ.ย 

์†์„ฑ๊ฐ’ addressForCoordinate?: (coordinate: LatLng) => void - ์ฃผ์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” LatLng ๊ฐ์ฒด๋ฅผ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. | | pointForCoordinate | coordinate: LatLng | pointForCoordinate?: (coordinate: LatLng) => void - ํ™”๋ฉด ์ขŒํ‘œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” LatLng ๊ฐ์ฒด๋ฅผ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. | | coordinateForPoint | point: Point | coordinateForPoint?: (point: Point) => void - ๊ฒ€์ƒ‰ํ•  ํ™”๋ฉด ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Point ๊ฐ์ฒด๋ฅผ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. | | getMarkersFrames | onlyVisible: Boolean | getMarkersFrames?: () => void - ์ง€๋„์— ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋“  ๋งˆ์ปค์˜ ํ”„๋ ˆ์ž„ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. |

๐Ÿš—ย Types

type Region {
  latitude: Number,
  longitude: Number,
  latitudeDelta: Number,
  longitudeDelta: Number,
}

type Camera = {
  center: {
    latitude: number;
    longitude: number;
  };
  pitch: number;
  heading: number;

  // Only on iOS MapKit, in meters. The property is ignored by Google Maps.
  altitude: number;

  // Only when using Google Maps.
  zoom: number;
};

์œ„๋„(latitude)์™€ ๊ฒฝ๋„(longitude)๋Š” ์ž๋ช…ํ•œ ๊ฒƒ์ด์ง€๋งŒ, ์œ„๋„์ฐจ(latitudeDelta)์™€ ๊ฒฝ๋„์ฐจ(longitudeDelta)๋Š” ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. developer.apple.com ์›น์‚ฌ์ดํŠธ์—์„œ๋Š” โ€œlatitudeDeltaโ€ ์†์„ฑ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค.

์ง€๋„์— ํ‘œ์‹œํ•  ๋‚จ๋ถ ๊ฑฐ๋ฆฌ(๋„ ๋‹จ์œ„)์˜ ์–‘์ž…๋‹ˆ๋‹ค. ๊ฒฝ๋„ ๊ฑฐ๋ฆฌ๋Š” ์œ„๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€์ง€๋งŒ, ์œ„๋„ 1๋„๋Š” ํ•ญ์ƒ ์•ฝ 111ํ‚ฌ๋กœ๋ฏธํ„ฐ(69๋งˆ์ผ)์ž…๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์ด๊ฒƒ์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋ฉด, stackoverflow์—์„œ ์‹œ๊ฐ์ ์ธ ์„ค๋ช…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์นด๋ฉ”๋ผ(Camera)๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, iOS์˜ MapKit์™€ Google Maps๋Š” ๋†’์ด(height)๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์•ฑ์—์„œ ์คŒ ๋ ˆ๋ฒจ(zoom level)๊ณผ ๊ณ ๋„(altitude)๋ฅผ ๋ชจ๋‘ ๋”ฐ๋กœ ์ง€์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

type LatLng {
  latitude: Number,
  longitude: Number,
}

type Location {
  latitude: Number,
  longitude: Number,
  altitude: Number,
  timestamp: Number, //Milliseconds since Unix epoch
  accuracy: Number,
  altitudeAccuracy: Number,
  speed: Number,
}

type Point {
  x: Number,
  y: Number,
}

type Frame {
  x: Number,
  y: Number,
  width: Number,
  height: Number,
}

enum MapType : String {
  "standard",
  "satellite",
  "hybrid",
  "terrain" //Android only
}

type EdgePadding {
  top: Number,
  right: Number,
  bottom: Number,
  left: Number
}

type EdgeInsets {
  top: Number,
  left: Number,
  bottom: Number,
  right: Number
}

type Marker {
  id: String,
  coordinate: LatLng,
  title: String,
  description: String
}

type KmlContainer {
  markers: [Marker]
}

type IndoorBuilding {
  underground: boolean,
  activeLevelIndex: Number,
  levels: Array<IndoorLevel>,
}

type IndoorLevel {
  index: Number,
  name: String,
  shortName: String,
}

type Address {
  name: String,
  thoroughfare: String,
  subThoroughfare: String,
  locality: String,
  subLocality: String,
  administrativeArea: String,
  subAdministrativeArea: String,
  postalCode: String,
  countryCode: String,
  country: String,
}