(function(){ const PLACES = [{"name":"캣츠스파 웰니스 전문케어 다낭점","addr":"72 An Nhơn 7, An Hải Bắc, Sơn Trà, Đà Nẵng 550000 베트남","lat":16.068726,"lng":108.234584},{"name":"누루 돈키호테 마사지","addr":"949 Ng. Quyền, An Hải Bắc, Sơn Trà, Đà Nẵng 550000 베트남","lat":16.06345,"lng":108.234055},{"name":"에덴 가라오케","addr":"5 Duy Tân, Hoà Cường Bắc, Hải Châu, Đà Nẵng 550000 베트남","lat":16.048534,"lng":108.216468},{"name":"5성 호텔 삼디 붐붐마사지","addr":"331 Đ. Nguyễn Văn Linh, Thạc Gián, Thanh Khê, Đà Nẵng 550000 베트남","lat":16.059283,"lng":108.208498},{"name":"뉴라이프 남성전용마사지","addr":"127 Nguyễn Xuân Khoát, An Hải, Sơn Trà, Đà Nẵng 550000 베트남","lat":16.070261,"lng":108.235369},{"name":"풍투이 스파","addr":"17 Phạm Văn Đồng, An Hải Bắc, Sơn Trà, Đà Nẵng 550000 베트남","lat":16.070811,"lng":108.236408}]; const APIKEY = "AIzaSyDjqs-5Y21aElDFwM4JDqUeQuwpC54akAY"; const MAP_ID = "b2a35ea007fa5bfbd9108974"; function T(s){var d=document.createElement('div'); d.appendChild(document.createTextNode(s||'')); return d;} function init(){ var opts={mapTypeControl:false,streetViewControl:false,fullscreenControl:true}; if(MAP_ID) opts.mapId = MAP_ID; var map = new google.maps.Map(document.getElementById('map'), opts); var info = new google.maps.InfoWindow(); var bounds = new google.maps.LatLngBounds(); // marker 라이브러리 + mapId 둘 다 있을 때만 AdvancedMarker 사용 var hasAdv = !!(MAP_ID && google.maps.marker && google.maps.marker.AdvancedMarkerElement); (PLACES||[]).forEach(function(p){ var pos={lat:p.lat,lng:p.lng}; if (hasAdv){ var mk = new google.maps.marker.AdvancedMarkerElement({map:map, position:pos, title:p.name}); mk.addListener('gmp-click', function(){ var box=document.createElement('div'); var t1=document.createElement('div'); t1.style.fontWeight='700'; t1.style.fontSize='14px'; t1.appendChild(T(p.name)); box.appendChild(t1); if(p.addr){ var t2=document.createElement('div'); t2.style.marginTop='4px'; t2.appendChild(T(p.addr)); box.appendChild(t2); } info.close(); info.setContent(box); info.open({anchor:mk, map:map}); }); } else { var mk = new google.maps.Marker({map:map, position:pos, title:p.name}); mk.addListener('click', function(){ var box=document.createElement('div'); var t1=document.createElement('div'); t1.style.fontWeight='700'; t1.style.fontSize='14px'; t1.appendChild(T(p.name)); box.appendChild(t1); if(p.addr){ var t2=document.createElement('div'); t2.style.marginTop='4px'; t2.appendChild(T(p.addr)); box.appendChild(t2); } info.close(); info.setContent(box); info.open(map, mk); }); } bounds.extend(pos); }); if(PLACES.length) map.fitBounds(bounds); else { map.setCenter({lat:16.0471,lng:108.2068}); map.setZoom(13); } console.log('nearby ok',{count:PLACES.length,useAdvanced:hasAdv,mapId:MAP_ID||null}); } // 콜백 등록 후 로더 주입: marker,places 둘 다 로드 window.__mzInitMap=function(){try{init();}catch(e){console.error('init fail',e);}}; var s=document.createElement('script'); s.src='https://maps.googleapis.com/maps/api/js?key='+APIKEY+'&v=weekly&loading=async&libraries=marker,places&callback=__mzInitMap'; s.async=true; s.onerror=function(){console.error('maps loader fail');}; document.head.appendChild(s); })();