{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\components\\\\NaverMap.js\",\n  _s = $RefreshSig$();\nimport React, { useEffect, useRef } from \"react\";\n\n// 마커 데이터 예시 [{lat: ..., lng: ..., title: ..., icon: ...}]\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nexport default function NaverMap({\n  markers = [],\n  // 여러 마커 배열\n  style = {\n    width: \"100%\",\n    height: \"500px\"\n  }\n}) {\n  _s();\n  const mapRef = useRef(null);\n  useEffect(() => {\n    var _markers$0$lat, _markers$, _markers$0$lng, _markers$2;\n    if (!window.naver) return;\n\n    // 서울시청 기본 위치 (마커 없으면)\n    const defaultPos = {\n      lat: 37.5665,\n      lng: 126.9780\n    };\n\n    // 지도 생성\n    const map = new window.naver.maps.Map(mapRef.current, {\n      center: new window.naver.maps.LatLng((_markers$0$lat = (_markers$ = markers[0]) === null || _markers$ === void 0 ? void 0 : _markers$.lat) !== null && _markers$0$lat !== void 0 ? _markers$0$lat : defaultPos.lat, (_markers$0$lng = (_markers$2 = markers[0]) === null || _markers$2 === void 0 ? void 0 : _markers$2.lng) !== null && _markers$0$lng !== void 0 ? _markers$0$lng : defaultPos.lng),\n      zoom: 13\n    });\n\n    // 마커 & InfoWindow 관리\n    const markerObjs = [];\n    const infoWindows = [];\n    markers.forEach((marker, idx) => {\n      const markerObj = new window.naver.maps.Marker({\n        position: new window.naver.maps.LatLng(marker.lat, marker.lng),\n        map,\n        icon: marker.icon // 마커 이미지 커스텀 가능\n      });\n      markerObjs.push(markerObj);\n      if (marker.title || marker.desc) {\n        const infoWindow = new window.naver.maps.InfoWindow({\n          content: `\n            <div style=\"padding:7px;font-size:14px;\">\n              <b>${marker.title || \"\"}</b><br/>\n              ${marker.desc || \"\"}\n            </div>\n          `\n        });\n\n        // 마커 클릭 시 InfoWindow 표시\n        window.naver.maps.Event.addListener(markerObj, \"click\", () => {\n          infoWindows.forEach(iw => iw.close()); // 기존 info 닫기\n          infoWindow.open(map, markerObj);\n        });\n        infoWindows.push(infoWindow);\n      }\n    });\n\n    // 지도 클릭 시 InfoWindow 열기\n    window.naver.maps.Event.addListener(map, \"click\", e => {\n      // 예시: 클릭한 위치에 InfoWindow 표시\n      const tempWindow = new window.naver.maps.InfoWindow({\n        content: `<div style=\"padding:7px;font-size:13px;\">좌표: ${e.coord.lat().toFixed(6)}, ${e.coord.lng().toFixed(6)}</div>`\n      });\n      tempWindow.open(map, e.coord);\n      setTimeout(() => tempWindow.close(), 2000); // 2초 후 자동 닫기\n    });\n\n    // Clean up\n    return () => {\n      markerObjs.forEach(marker => marker.setMap(null));\n      infoWindows.forEach(iw => iw.close());\n    };\n  }, [markers]);\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    ref: mapRef,\n    style: style\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 73,\n    columnNumber: 10\n  }, this);\n}\n_s(NaverMap, \"9mn7MMe4fPaZ50ApsOpRWF2HbFg=\");\n_c = NaverMap;\nvar _c;\n$RefreshReg$(_c, \"NaverMap\");","map":{"version":3,"names":["React","useEffect","useRef","jsxDEV","_jsxDEV","NaverMap","markers","style","width","height","_s","mapRef","_markers$0$lat","_markers$","_markers$0$lng","_markers$2","window","naver","defaultPos","lat","lng","map","maps","Map","current","center","LatLng","zoom","markerObjs","infoWindows","forEach","marker","idx","markerObj","Marker","position","icon","push","title","desc","infoWindow","InfoWindow","content","Event","addListener","iw","close","open","e","tempWindow","coord","toFixed","setTimeout","setMap","ref","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/components/NaverMap.js"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\r\n\r\n// 마커 데이터 예시 [{lat: ..., lng: ..., title: ..., icon: ...}]\r\nexport default function NaverMap({\r\n  markers = [],                  // 여러 마커 배열\r\n  style = { width: \"100%\", height: \"500px\" }\r\n}) {\r\n  const mapRef = useRef(null);\r\n\r\n  useEffect(() => {\r\n    if (!window.naver) return;\r\n\r\n    // 서울시청 기본 위치 (마커 없으면)\r\n    const defaultPos = { lat: 37.5665, lng: 126.9780 };\r\n\r\n    // 지도 생성\r\n    const map = new window.naver.maps.Map(mapRef.current, {\r\n      center: new window.naver.maps.LatLng(\r\n        markers[0]?.lat ?? defaultPos.lat,\r\n        markers[0]?.lng ?? defaultPos.lng\r\n      ),\r\n      zoom: 13,\r\n    });\r\n\r\n    // 마커 & InfoWindow 관리\r\n    const markerObjs = [];\r\n    const infoWindows = [];\r\n\r\n    markers.forEach((marker, idx) => {\r\n      const markerObj = new window.naver.maps.Marker({\r\n        position: new window.naver.maps.LatLng(marker.lat, marker.lng),\r\n        map,\r\n        icon: marker.icon // 마커 이미지 커스텀 가능\r\n      });\r\n      markerObjs.push(markerObj);\r\n\r\n      if (marker.title || marker.desc) {\r\n        const infoWindow = new window.naver.maps.InfoWindow({\r\n          content: `\r\n            <div style=\"padding:7px;font-size:14px;\">\r\n              <b>${marker.title || \"\"}</b><br/>\r\n              ${marker.desc || \"\"}\r\n            </div>\r\n          `\r\n        });\r\n\r\n        // 마커 클릭 시 InfoWindow 표시\r\n        window.naver.maps.Event.addListener(markerObj, \"click\", () => {\r\n          infoWindows.forEach(iw => iw.close()); // 기존 info 닫기\r\n          infoWindow.open(map, markerObj);\r\n        });\r\n        infoWindows.push(infoWindow);\r\n      }\r\n    });\r\n\r\n    // 지도 클릭 시 InfoWindow 열기\r\n    window.naver.maps.Event.addListener(map, \"click\", (e) => {\r\n      // 예시: 클릭한 위치에 InfoWindow 표시\r\n      const tempWindow = new window.naver.maps.InfoWindow({\r\n        content: `<div style=\"padding:7px;font-size:13px;\">좌표: ${e.coord.lat().toFixed(6)}, ${e.coord.lng().toFixed(6)}</div>`\r\n      });\r\n      tempWindow.open(map, e.coord);\r\n      setTimeout(() => tempWindow.close(), 2000); // 2초 후 자동 닫기\r\n    });\r\n\r\n    // Clean up\r\n    return () => {\r\n      markerObjs.forEach(marker => marker.setMap(null));\r\n      infoWindows.forEach(iw => iw.close());\r\n    };\r\n  }, [markers]);\r\n\r\n  return <div ref={mapRef} style={style}></div>;\r\n}\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}