codestates / codestates/UptoDoor

[๐ŸŒช Error Handling] ๋ฐ˜๊ฒฝ ๋‚ด์˜ ๋งˆ์ปค๋งŒ ๋ณด์—ฌ์ฃผ๊ธฐ + ๋ณด์—ฌ์ค€ ๋งˆ์ปค๋“ค์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ฆฌ์ŠคํŠธ์— ๋ณด์—ฌ์ฃผ๊ธฐ / 2021-09-27

Open
#198 0 comments 0 reactions 1 assignee Claimed by @dydwns2441 View on GitHub
complete error
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.