브리지 트롤 기능 추가

이번 주 오픈 소스 수업에서 저는 교수가 만든 bridge-troll이라는 오픈 소스 u rce 프로젝트에 기능을 추가하는 작업을 맡았습니다. 데이비드 험프리. 이 프로젝트에 추가하도록 요청 된 기능은 여기에서 볼 수 있습니다. 따라서 기본적으로이 기능이 회전하는 것은 현재 브리지 트롤 프로젝트가지도의 배경을 야간 사용에 적합하지 않은 밝은 색상으로 만 렌더링한다는 것입니다. 따라서 요청 된 것은 사용자 위치의 일몰을 기준으로 사용자의 현재 시간에 따라 조정될 어두운 테마를 추가하는 것이 었습니다.

첫 번째 단계는 저장소를 포크하고 로컬로 복제하는 것이 었습니다. 그 후 아래 표시된 명령을 실행해야했습니다.

이 모든 명령은 성공적이었으며 문제를 일으키지 않았습니다. 그래서 제가 가장 먼저 조사해야하는 것은 교수님이 그의 문제에서 추천 한 SunCalc 저장소였습니다. 이 저장소는 여기에서 볼 수 있습니다. 따라서이 저장소에는 위치와 시간을 기준으로 태양 위치, 태양 광 위상, 달 위치 등을 계산하는 데 사용할 수있는 많은 함수가 포함되어 있습니다.

npm이이 저장소를 설치 한 후 var returnedTime = suncalc.getTimes (currentTime, lat, lng); 를 사용해야한다는 것을 깨달았습니다. 이렇게하면 사용할 수있는 많은 속성이있는 객체가 반환됩니다. . 내가 사용해야하는 속성은 sunriseEnd sunsetStart 였습니다. 이는 각각 야간 시작 시점과 일광 시작 시점을 나타 내기 때문입니다. 이것을 찾은 currentTime과 비교하면 어두운 테마를 렌더링할지 밝은 테마를 렌더링할지 결정할 수 있습니다.

내 변경 사항은 아래 스크린 샷에서 볼 수 있습니다.


보시다시피 base-ui.js 에서 저는이 함수에 이미 정의 된 위도와 경도를 가져 오는 메소드, 테마를 호출했습니다. theme.js 파일에서 함수를 호출했고, 그에 따라 returnedTime 에 저장된 sunCalc 객체와 currentTime <에 일반 날짜 객체를 가져옵니다. / code>. if 문은 야간 여부를 확인하고 조건 중 하나라도 참이면 titleURL 을 어두운 테마로 설정합니다. 사실이 아니면 titleURL 을 밝은 테마로 설정합니다.

이 실습은 기존 저장소에 기능을 추가하는면에서 저에게 좋은 학습 경험이었습니다. 나는 또한 두 명의 동료와 함께 일하면서 더 많은 아이디어가 우리 사이에 튀어 나와 학습 경험을 더욱 향상 시켰습니다. 이 문제는 해결하기 어려운 문제는 아니지만 SunCalc 라이브러리 및 SunCalc 객체와 관련된 모든 속성을 학습해야했습니다. sunriseEnd sunsetStart 속성에 액세스해야했기 때문에 속성이 개체에 저장되는 방식을 이해하기 위해 몇 개의 console.logs를 실행해야했기 때문에이 점에 유의해야합니다. 우리 코드를 위해. 어쨌든 이번주는 끝났습니다. 다음 블로그 게시물에서 뵙겠습니다!