<bestdur){bestdur=dur;bestidx=i;} });="" dirrenderer.setdirections(res);="" dirrenderer.setrouteindex(bestidx);="" const="" leg="res.routes[bestIdx].legs[0];" dtxt="leg.distance?.text||''," ttxt="leg.duration?.text||'';" settext('#routesummary',="" `최단="" 경로="" ·="" ${labelmode="=='WALKING'?'도보':'자동차'}" ${ttxt}="" ${dtxt}`);="" };="" candidates="candidatePoints(dest," 40);="" 1)="" 선택="" 모드로="" 후보들="" 시도="" for="" (const="" pt="" of="" candidates){="" try{="" r="await" trydirections(me,="" pt,="" mode);="" drawdirections(r,="" return;="" }="" catch(e){="" *="" 다음="" 후보="" 2)="" 다른="" 모드로도="" altmode="(mode==='WALKING')?'DRIVING':'WALKING';" altmode);="" 3)="" 마지막:="" distance="" matrix로="" 시간="" 거리="" 보장="" +="" 점선="" 직선="" dm="new" google.maps.distancematrixservice();="" out="await" new="" promise((resolve,reject)="">{
dm.getDistanceMatrix({
origins:[me],
destinations:[dest],
travelMode: google.maps.TravelMode[mode],
unitSystem: google.maps.UnitSystem.METRIC
}, (r,status)=> status==='OK' ? resolve(r) : reject(status));
});
const cell = out.rows?.[0]?.elements?.[0];
const durTxt = cell?.duration?.text || '';
const distTxt = cell?.distance?.text || '';
drawDottedLine(me, dest);
setText('#routeSummary', `소요시간(예상) · ${mode==='WALKING'?'도보':'자동차'} ${durTxt} · ${distTxt}`);
}catch(err){
console.error('DistanceMatrix failed:', err);
setText('#routeSummary','경로 계산 실패');
}
}
// 부팅
document.addEventListener('DOMContentLoaded', ()=>{
const img=document.getElementById('splashImg'); if(img) img.src=SPLASH_URL;
// 지도 높이 보정(컨테이너가 0px일 때 대비)
const m = document.getElementById('map');
if (m && m.getBoundingClientRect().height < 200) {
m.style.height = '70vh';
}
waitFor('#map',5000).finally(()=>{
ensureMapsLoaded(()=>{ window.locateMe(); setTimeout(window.hideSplash, 3000); });
});
});
})();
</bestdur){bestdur=dur;bestidx=i;}><bestdur){bestdur=dur;bestidx=i;} });="" dirrenderer.setdirections(res);="" dirrenderer.setrouteindex(bestidx);="" const="" leg="res.routes[bestIdx].legs[0];" dtxt="leg.distance?.text||''," ttxt="leg.duration?.text||'';" settext('#routesummary',="" `최단="" 경로="" ·="" ${labelmode="=='WALKING'?'도보':'자동차'}" ${ttxt}="" ${dtxt}`);="" };="" candidates="candidatePoints(dest," 40);="" 1)="" 선택="" 모드로="" 후보들="" 시도="" for="" (const="" pt="" of="" candidates){="" try{="" r="await" trydirections(me,="" pt,="" mode);="" drawdirections(r,="" return;="" }="" catch(e){="" *="" 다음="" 후보="" 2)="" 다른="" 모드로도="" altmode="(mode==='WALKING')?'DRIVING':'WALKING';" altmode);="" 3)="" 마지막:="" distance="" matrix로="" 시간="" 거리="" 보장="" +="" 점선="" 직선="" dm="new" google.maps.distancematrixservice();="" out="await" new="" promise((resolve,reject)="">{
dm.getDistanceMatrix({
origins:[me],
destinations:[dest],
travelMode: google.maps.TravelMode[mode],
unitSystem: google.maps.UnitSystem.METRIC
}, (r,status)=> status==='OK' ? resolve(r) : reject(status));
});
const cell = out.rows?.[0]?.elements?.[0];
const durTxt = cell?.duration?.text || '';
const distTxt = cell?.distance?.text || '';
drawDottedLine(me, dest);
setText('#routeSummary', `소요시간(예상) · ${mode==='WALKING'?'도보':'자동차'} ${durTxt} · ${distTxt}`);
}catch(err){
console.error('DistanceMatrix failed:', err);
setText('#routeSummary','경로 계산 실패');
}
}
// 부팅
document.addEventListener('DOMContentLoaded', ()=>{
const img=document.getElementById('splashImg'); if(img) img.src=SPLASH_URL;
// 지도 높이 보정(컨테이너가 0px일 때 대비)
const m = document.getElementById('map');
if (m && m.getBoundingClientRect().height < 200) {
m.style.height = '70vh';
}
waitFor('#map',5000).finally(()=>{
ensureMapsLoaded(()=>{ window.locateMe(); setTimeout(window.hideSplash, 3000); });
});
});
})();
</bestdur){bestdur=dur;bestidx=i;}>