codestates / codestates/UptoDoor
[๐ช Error Handling] ๋ฐ๊ฒฝ ๋ด์ ๋ง์ปค๋ง ๋ณด์ฌ์ฃผ๊ธฐ + ๋ณด์ฌ์ค ๋ง์ปค๋ค์ ๋ฐ์ดํฐ๋ง ๋ฆฌ์คํธ์ ๋ณด์ฌ์ฃผ๊ธฐ / 2021-09-27
- Dominant language
- JavaScript
- Stars
- 1
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
> ํด๊ฒฐ๋ ์๋ฌ๋ผ๋ฉด ๋ผ๋ฒจ์ 'Complete' ๋ฅผ ๋ฌ์์ฃผ์ธ์.
> ๋ฏธํด๊ฒฐ๋ ์๋ฌ๋ผ๋ฉด ๋ผ๋ฒจ์ 'In progress' ๋ก ๋ณ๊ฒฝํด์ฃผ์ธ์.
### ์ด๋ค ์๋ฌ์ธ๊ฐ์?
- ์ ์ฒด ๋ฐ์ดํฐ์์ ๋ฐ๊ฒฝ์์ ๋ฐ์ดํฐ๋ง ๋ณด์ฌ์ค์ผํ๋๋ฐ, ๋ง์ปค๋ ๊ทธ๋ ๊ฒ ๊ฐ๋ฅํ์ง๋ง, ๊ฐ๋จํ ๊ฐ๊ฒ์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฆฌ์คํธ์์๋ ์ ์ฒด๋ฐ์ดํฐ๊ฐ ๋์จ๋ค.
### ์๋ฌ ๋ฉ์์ง
```js
๋ฐ๊ฒฝ์ ๋ง๋ค๊ณ , ๋ฐ๊ฒฝ์ ์ง๋์ ๋์ด์ฃผ๋ ์ฝ๋
const circle = new kakao.maps.Circle({
center: new kakao.maps.LatLng(result[0].y, result[0].x), // ์์ ์ค์ฌ์ขํ ์
๋๋ค
radius: 2500, // ๋ฏธํฐ ๋จ์์ ์์ ๋ฐ์ง๋ฆ์
๋๋ค
strokeWeight: 5, // ์ ์ ๋๊ป์
๋๋ค
strokeColor: "#75B8FA", // ์ ์ ์๊น์
๋๋ค
strokeOpacity: 1, // ์ ์ ๋ถํฌ๋ช
๋ ์
๋๋ค 1์์ 0 ์ฌ์ด์ ๊ฐ์ด๋ฉฐ 0์ ๊ฐ๊น์ธ์๋ก ํฌ๋ช
ํฉ๋๋ค
strokeStyle: "dashed", // ์ ์ ์คํ์ผ ์
๋๋ค
fillColor: "#CFE7FF", // ์ฑ์ฐ๊ธฐ ์๊น์
๋๋ค
fillOpacity: 0.5, // ์ฑ์ฐ๊ธฐ ๋ถํฌ๋ช
๋ ์
๋๋ค
});
// // ์ง๋์ ์์ ํ์ํฉ๋๋ค
circle.setMap(map);
```
```js
// ๋ถ๋ฌ์จ ๋ฐ์ดํฐ์ ์๋ ์ฃผ์๋ค์ ์ขํ๋ก ๋ง๋ค์ด ๋ง์ปค์ ์ฐ์ด์ค๋ค.
const radius = 2500; //๋ฐ๊ฒฝ ๋ฒ์ ๋ณ์
for (let i = 0; i < initialStore.length; i++) {
// ์ฃผ์๋ก ์ขํ๋ฅผ ๊ฒ์ํฉ๋๋ค
geocoder.addressSearch(
initialStore[i].address,
function (result, status) {
// ์ ์์ ์ผ๋ก ๊ฒ์์ด ์๋ฃ๋์ผ๋ฉด
if (status === kakao.maps.services.Status.OK) {
const coords = new kakao.maps.LatLng(
result[0].y,
result[0].x
);
// ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฐ์ ์์น๋ฅผ ๋ง์ปค๋ก ํ์ํฉ๋๋ค
marker = new kakao.maps.Marker({
map: map,
position: coords,
});
kakao.maps.event.addListener(marker, "click", () => {
geocoder.coord2Address(
coords.getLng(),
coords.getLat(),
callback
);
});
์ผํฐ๋ ๋ง์ปค์ ์์น๋ฅผ ์ฐพ์ ๋ฐ๊ฒฝ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๊ณ , ๋น๊ตํ์ฌ ๋ณด์ฌ์ฃผ์ด์ผํ๋ค.
์ง๋์๋ ๋จ์ง๋ง, ๋ฆฌ์คํธ์๋ ์ ์ฉ์ด ์๋์๋ค.
const c1 = map.getCenter();
const c2 = marker.getPosition();
const poly = new kakao.maps.Polyline({
map: map,
path: [c1, c2],
strokeOpacity: 0,
});
const dist = poly.getLength();
if (dist < radius) {
marker.setMap(map);
} else {
marker.setMap(null);
}
}
}
);
}
```
### ์๋ฌ ํธ๋ค๋ง ๋ฐฉ๋ฒ
- ๋งจ์์ markers๋ผ๋ ๋น๋ฐฐ์ด์ ๋ง๋ค๊ณ , ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ์ฌ ๋ณด์ฌ์ค์ง ๋ง์ง ์ ํ๋ ์ฝ๋ ์ชฝ์ storelist๋ฅผ ๋ง๋ค์ด์ฃผ๋ ํจ์๋ฅผ props๋ก ๊ฐ์ ธ์ ์ ์ฉ์์ผฐ๋ค.
```js
const markers=[]
...์๋ต...
const c1 = map.getCenter();
const c2 = marker.getPosition();
const poly = new kakao.maps.Polyline({
map: map,
path: [c1, c2],
strokeOpacity: 0,
});
const dist = poly.getLength();
if (dist < radius) {
+์ฌ๊ธฐ markers.push(initialStore[i]);
marker.setMap(map);
} else {
marker.setMap(null);
}
}
+์ฌ๊ธฐ clickHashtagHandler(markers);
}
```
### ์๋ฌ ํธ๋ค๋ง์ ์ํด ์ฐธ๊ณ ํ ๋ ํผ๋ฐ์ค ๋งํฌ
[์ง๋ ์ผํฐ ๋ฐ๊ฒฝ๋ฒ์ ๋ด ๋ง์ปค์ฐ๊ธฐ๊ฐ ์๋ฉ๋๋ค](https://devtalk.kakao.com/t/topic/106496)
๋ ํผ๋ฐ์ค์์๋ ์ด๋ ๊ฒ ๋์ด์์ง๋ง,
```js
var poly = new Polyline({
// map: map, ์ ํ์ง ์์๋ ๊ฑฐ๋ฆฌ๋ ๊ตฌํ ์ ์๋ค.
path: [c1, c2]
});
```
์ด๋ ๊ฒ ์์ ํด์ผํ๋ค.
```js
var poly = new kakao.maps.Polyline({
path: [c1, c2]
});
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.