[react] 지도에서 스포츠 시설 정보 표시하기

React에서 지도 위에 스포츠 시설 정보를 표시하려면, 다음과 같은 단계를 따를 수 있습니다.

  1. 지도 API 선택: 구글 맵, 네이버 맵, 카카오 맵 등의 API 중 하나를 선택합니다.
  2. API 키 발급: 선택한 지도 API의 공식 웹사이트에서 개발자 계정을 생성하고 API 키를 발급받습니다.
  3. React 앱에 지도 라이브러리 추가: 선택한 지도 API의 React용 라이브러리를 설치하고 프로젝트에 추가합니다.
  4. 지도 컴포넌트 생성: React 컴포넌트를 사용하여 지도를 표시하고 초기 위치를 설정합니다.
  5. 스포츠 시설 데이터 가져오기: 스포츠 시설 정보를 제공하는 API를 활용하여 데이터를 가져옵니다.
  6. 마커 추가 및 정보 표시: 가져온 스포츠 시설 데이터를 기반으로 지도 위에 마커를 표시하고, 마커를 클릭했을 때 해당 시설의 정보를 표시하는 기능을 구현합니다.

다음은 React와 Google 맵 API를 활용하여 스포츠 시설 정보를 지도에 표시하는 예시 코드입니다.

import React, { useState, useEffect } from 'react';
import { GoogleMap, LoadScript, Marker, InfoWindow } from '@react-google-maps/api';

const mapStyles = {
  height: "100vh",
  width: "100%"
};

const defaultCenter = {
  lat: 37.7749,
  lng: -122.4194
};

const sportsFacilityData = [
  { id: 1, name: '테니스코트', location: { lat: 37.772, lng: -122.420 } },
  { id: 2, name: '체육관', location: { lat: 37.773, lng: -122.421 } },
  // 기타 스포츠 시설 데이터
];

const MapContainer = () => {
  const [selectedFacility, setSelectedFacility] = useState(null);

  return (
    <LoadScript googleMapsApiKey="YOUR_API_KEY">
      <GoogleMap
        mapContainerStyle={mapStyles}
        zoom={13}
        center={defaultCenter}
      >
        {sportsFacilityData.map(facility => (
          <Marker
            key={facility.id}
            position={facility.location}
            onClick={() => setSelectedFacility(facility)}
          />
        ))}

        {selectedFacility && (
          <InfoWindow
            position={selectedFacility.location}
            onCloseClick={() => setSelectedFacility(null)}
          >
            <>
              <h3>{selectedFacility.name}</h3>
              <p>추가 정보 및 상세 내용</p>
            </>
          </InfoWindow>
        )}
      </GoogleMap>
    </LoadScript>
  );
};

export default MapContainer;

이 예시 코드는 React와 @react-google-maps/api 라이브러리를 사용하여 Google 맵 위에 스포츠 시설 정보를 표시하는 간단한 방법을 보여줍니다. 선택한 스포츠 시설에 관한 추가적인 정보는 InfoWindow를 통해 표시됩니다.


참고 문헌: