카카오맵 지도 -1 api를 사용해보자

developer.do·2023년 2월 7일
0

카카오맵 api를 사용해보자

  1. react, typescript, next.js
  1. https://developers.kakao.com/
    해당 페이지 접속
  1. 애플리케이션 추가 후 지도테스트로 생성(이름은 상관없음)
  1. 플랫폼 등록
  1. 로컬 호스트 등록
  1. npm install react-kakao-maps-sdk
    설치하기
  1. tsconfig.json에 types 추가하기
{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "baseUrl": ".",
    "types": ["kakao.maps.d.ts"],  // 타입추가하기
    "paths": {
      "@/*": ["./*"]
    }
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
  "exclude": ["node_modules"]
}
  1. 랜딩 페이지에 코드 적어주면 끝
index.tsx
import { CustomOverlayMap, Map } from 'react-kakao-maps-sdk';

export default function Main() {
  return (
    <>
      <Map // 지도를 표시할 Container
        center={{
          // 지도의 중심좌표
          lat: 33.450701,
          lng: 126.570667,
        }}
        style={{
          // 지도의 크기
          width: '100%',
          height: '450px',
        }}
        level={3} // 지도의 확대 레벨
      />
    </>
  );
}
_document.tsx
import { Html, Head, Main, NextScript } from 'next/document';
import Script from 'next/script';

export default function Document() {
  return (
    <Html lang="en">
      <Head />
      <body>
        <Main />
        <NextScript />

        <Script
          type="text/javascript"
          src={`//dapi.kakao.com/v2/maps/sdk.js?appkey=${process.env.NEXT_PUBLIC_KAKAO_API_KEY}&libraries=services,clusterer&autoload=false`}
          strategy="beforeInteractive"
        />
      </body>
    </Html>
  );
}

원래 기존 리엑트에서는 아래와 같이 했는데 작동함
src="//dapi.kakao.com/v2/maps/sdk.js?appkey=%NEXT_PUBLIC_KAKAO_API_KEY%&libraries=services,clusterer&autoload=false"
.env
NEXT_PUBLIC_KAKAO_API_KEY=12903892103809123abcbabdbacba

0개의 댓글