๐ ๏ธ 1. InfoWindow๋ ๋ด๋๋ฐ, ํธ์์ ์ ๋ณด๋ ์ ๋ณด์
โ ํ์
๋ง์ปค ํด๋ฆญ ์ InfoWindow๋ ์ด๋ฆฌ์ง๋ง, ํธ์์ ์ด๋ฆ๊ณผ ์ฃผ์๊ฐ ๋น์ด ์๊ฑฐ๋ undefined๋ก ํ์๋จ
โ๏ธ ์์ธ
์นด์นด์ค ์ฅ์ ๊ฒ์ ๊ฒฐ๊ณผ์์ road_address_name์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์์ด, undefined๋ก ํ์๋จ
๋ํ place.y, place.x์ ์ขํ ๊ฐ์ kakao.maps.LatLng์ ๋๊ธฐ์ง ์๊ณ ๋ฐ๋ก ์ถ๋ ฅํ๋ ์ค์๋ ์์์
โ
ํด๊ฒฐ
์ฃผ์ ์ถ๋ ฅ ์ road_address_name || address_name ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ
์ขํ ๋ณํ ์ new kakao.maps.LatLng(place.y, place.x)๋ก ๋ช
ํํ ๊ฐ์ฒด ์์ฑ ํ ์ฌ์ฉ
๐ ๏ธ 2. ๊ฐ์ฅ ๊ฐ๊น์ด ํธ์์ ์ด ์๋, ๋ฐฐ์ด ์ฒซ ๋ฒ์งธ๋ง ํ์๋จ
โ ํ์
๊ฒ์๋ ํธ์์ ์ค ์ฌ์ฉ์ ์์น์์ ๊ฑฐ๋ฆฌ์ ๋ฌด๊ดํ๊ฒ ํญ์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ํธ์์ ์ด ์ง๋์ ํ์๋จ
โ๏ธ ์์ธ
์ด๊ธฐ closestPlace๋ฅผ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ๋ก ์ค์ ํ ํ, ๋๋จธ์ง ํธ์์ ๋ค๊ณผ์ ๊ฑฐ๋ฆฌ ๋น๊ต ๋ก์ง์ด ์ ๋๋ก ์๋ํ์ง ์์ ํญ์ ์ฒซ ๋ฒ์งธ ํธ์์ ๋ง ์ ํ๋จ
โ
ํด๊ฒฐ
getDistance() ํจ์์์ ํ๋ฒ์ฌ์ธ(Haversine) ๊ณต์์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์์น์ ๊ฐ ํธ์์ ๊ฐ์ ์ค์ ๊ฑฐ๋ฆฌ(์ง๊ตฌ ๊ณก๋ฅ ๋ฐ์)๋ฅผ ๊ณ์ฐ
→ ์ด ๊ฑฐ๋ฆฌ ๊ฐ์ ๊ธฐ์ค์ผ๋ก minDistance๋ฅผ ๊ฐฑ์ ํ๋ฉฐ ๊ฐ์ฅ ๊ฐ๊น์ด ํธ์์ ์ ์ถ์
→ ์ต์ข
์ ์ผ๋ก closestPlace๋ฅผ ์ค์ ๊ฑฐ๋ฆฌ ๊ธฐ์ค์ผ๋ก ์ ํํ ์ ํํ๊ณ , ํด๋น ์์น์ ๋ง์ปค ๋ฐ InfoWindow ์ถ๋ ฅ
๐ ๋ณด์ ์ค๋ช
ํ๋ฒ์ฌ์ธ ๊ณต์์ ๋ ์๊ฒฝ๋ ์ขํ ๊ฐ์ ๋์๊ฑฐ๋ฆฌ(Great Circle Distance)๋ฅผ ๊ณ์ฐํ ์ ์๋ ๊ณต์์ผ๋ก, Math.sin, Math.cos, Math.atan2 ๋ฑ์ ํ์ฉํ์ฌ ๊ฑฐ๋ฆฌ ์ค์ฐจ๋ฅผ ์ต์ํํจ.
๐ ๏ธ 3. GS ํ์ด์ง์์ CU ๊ฒ์ ๊ฐ๋ฅ – ๋ธ๋๋ ๊ตฌ๋ถ ์คํจ
โ ํ์
ํ์ฌ ๋ธ๋๋๊ฐ GS25์ธ ํ์ด์ง์์ ๊ฒ์์ฐฝ์ CU๋ฅผ ์
๋ ฅํ๋ฉด CU ํธ์์ ๋ ๊ฒ์๋์ด ์ง๋์ ํ์๋จ
โ๏ธ ์์ธ
searchStore() ํจ์์์ currentBrand์ ๋ฌด๊ดํ๊ฒ keyword๋ง ํฌํจ๋๋ฉด ๋ชจ๋ ๋ธ๋๋๊ฐ ๊ฒ์ ๋์์ด ๋์์
โ
ํด๊ฒฐ
currentBrand ๊ฐ๊ณผ ๊ฒ์๋ place_name์ ๋ธ๋๋๋ช
์ ๋น๊ตํ๋ ์ ๊ท์ ์ ํจ์ฑ ๊ฒ์ฌ ์ถ๊ฐ
์: new RegExp("^" + currentBrand + "\\b")๋ฅผ ์ด์ฉํด ๋ธ๋๋๊ฐ ์ผ์นํ๋ ๊ฒฝ์ฐ๋ง ํํฐ๋ง