[음악 연주] 스피커 1 : 음, 여기에 우리가 있습니다, CS50의 마지막 P 세트. 데에서 자신을 축하드립니다 지금까지 온 이후 첫 인사 세계 닷컴 인쇄 마리오 피라미드. 당신은 지난 주 웹 사이트를했다. 그리고 우리는 또 다른 하나를 만드는 될 것입니다 이번 주, 한 당신은 할 수 있다는 따기, 하버드 캠퍼스 드라이브 최대 CS50 직원들, 그리고 그들을 다시 데려 자신의 주거 주택. 이제 지난 주에 우리는 PHP에서 근무 서버 측 언어. 이 P 세트를 위해, 우리는 도입한다는 거 입니다 자바 스크립트에 클라이언트 측 언어. 그럼 몇 가지를 살펴 보자 제공의 유통 코드 이 P 세트에 대한. 자바 스크립트를 폴더에,이 것 자바 스크립트 파일들을합니다. 를 포함 buildings.js은있다 하버드 주변 건물의 배열 자신의 정보와 캠퍼스, 및 위치. Houses.js 하버드의 배열 주거 주택, 그들의 위도와 경도. Passengers.js이 포함되어 있습니다 승객의 배열 - CS50 직원들 - 당신은 다시 데려 할 거라고 그들의 주거 주택. 많이 포함 Math3D.js, 운동과 함께 할 수있는 기능. 당신이 수학적으로 마음이 있다면, 그러면 나는 당신을 살펴 환영합니다. 하지만 당신은 이해 할 필요가 없습니다 거기에있는 모든. Shuttle.js, 그 다루는 셔틀의 움직임. 그리고 index.html을 홈 페이지입니다 모든 것이 정말 일어나는 곳 사용자가 사이트와 상호 작용한다. Service.css는 CSS 스타일 시트입니다, 이는 트위터에 추가 부트 스트랩 라이브러리, 컨트롤 방법 index.html을 보인다. 그리고 우리는 또한 service.js을 가지고있는 에 대한 서비스 기능이 포함되어 셔틀. 그리고 여기 당신이 될 것입니다 어디에 DOS로의 일부에 작성합니다. 이제 개체에 대해 살펴 보겠습니다과 자바 스크립트에서 연관 배열, 어떤 의도 나 목적 교환 할 수있다. 나는 개체에게 변수를 확인하고 싶다면 나는 지팡이 것이다라고 그것을 선언한다. 내가하고자하는 중괄호 핵심은 유니콘입니다 지정합니다. 나무는 벚꽃입니다. 길이는 13이다. 지금은 값에 액세스 할 수 있습니다 사용하여 객체의 연관 배열 표기법. 그래서 지팡이 인덱스 코어, I 설정할 수 있습니다 유니콘 같거나 내가 필요로하는 경우에, 그 확인. 아니면 도트 연산자를 사용할 수 있습니다. 지팡이 점 나무, 벚꽃과 동일 등등, 등등. 그래서 당신은 볼이 연관 배열과 자바 스크립트의 객체가 될 수 있습니다 교환 및 의지 아주 편리한을 들어온다. 그 다음 우리는 건물의 배열을 참조 buildings.js합니다. 다시 말하지만, 객체의 배열. 나는 최선의 배열을 만들고 싶어 경우 하버드 대학 캠퍼스 건물, 다음 나는 그것을 만들 것입니다. 이 객체 표기법을 사용하여 위치를 나는 루트, 이름, 주소를 저장, 모든에 대한 위도와 경도 하나의 건물 객체. 의 신속 변수에 대해 얘기하자 자바 스크립트에서. PHP, 자바 스크립트의 변수와 같이 약하게 또는 느슨하게 입력됩니다. 지역 변수를 만들려면 앞에 V-A-R, VAR 변수 이름. 이제 자바 스크립트에서 함수는 것 변수의 범위를 제한. 그래서 내에서 지역 변수가있는 경우 함수 다음 다른 기능 액세스 할 수 없다. 그러나 C는 달리, 루프 및 조건은하지 않습니다 변수의 범위를 제한. 당신의 내부에 그것을 선언 따라서도 조건, 전체 기능을 것입니다 거기에 액세스 할 수 있습니다. 이제 VAR하지 않고, 변수 글로벌 될 것입니다. 당신은 이름을 선언하고이 경우 값을 할당 한 다음 해당 변수 글로벌 변수가 될 것입니다 자바 스크립트에서. 이제 집에서, 우리는 연관이 집 형식 개체의 배열 위치 모든 집은 위도이다 와 경도. 그 다음 우리는 승객이 배열 배열, 개체 유형의 승객. 따라서 모든 승객은 이름을 가지고, 이름, 집. 내가 형보고 있어요납니다 정말 그냥 의미 승객, 모든 개체가 가지고있는 같은 키 값 쌍입니다. 그래서 형 승용차의 모든 개체에는 사용자 이름, 이름, 집. 그래서 우리는 무엇을해야합니까 P 세트에 대해 무엇입니까? 음, 우리는 사용자가 선택할 수 있도록해야합니다 직원까지 모두 표시 현재있는 직원 우리의 셔틀, 그들을 내려. 그리고 우리는 또한 여분의 얘기하자 구현 될 수있는 기능 셔틀 P 세트. 그러나의 첫 번째 픽업에 대해 이야기하자. CS50 직원의 얼굴이되었습니다 모든 캠퍼스에 심어 여기서 각 얼굴은 장소 표시로 구현 3D 지구에, 그리고 같은 2D지도에 마커. 사용자는 픽업을 클릭 할 때 그래서 버튼, 우리는 가까운 추가 할 셔틀 승객. 그리고 우리는 또한 자신의 자리를 제거 할 세계에서 표시하고이를 제거하여 지도에서 마커를 표시하는 그들은 지금 우리의 셔틀에있어. 그래서 우리는 어떻게 감지 않으면 승객 우리의 셔틀의 범위 내인가? 음, 기능 거리 - 그래서 셔틀 점의 거리, 전달 위도와 경도, 의지 전류로부터의 거리를 계산 에 셔틀의 위치 당신이 그와 함께 지정하는 것이 포인트 위도와 경도가 없습니다. 그래서 당신은 계산이 사용할 수 있습니다 에 셔틀 버스에서 거리 승객. 그러나 당신은 어떻게 알 수 있습니까 곳 승객은? 우리가해야합니다 곳 음, 그건 채우기 기능을 편집 할 수 있습니다. 장소에게 직원을 모두 채 웁니다 세계에 승객, 그리고지도에,하지만하지 않습니다 자신의 위치를​​ 저장합니다. 그래서 아마 당신은 저장할 수있는 자신의 마크 및 마커를 배치 일부 글로벌 배열. 지금은 이미 전역 배열이있다 승객들로부터의 정보를 저장하는 단계를 포함한다. 승객 어레이는 각 승객의 이름과 자신의 집. 아마 당신은 몇 가지 매개 변수를 추가 할 수 이 승객 개체. 우리는 모든 승객을 감지하는 데 도움이 우리의 셔틀의 범위 내에서하자 모든 승객을 반복 승객 배열. 자바 스크립트에 대한 루프 보일 수 있습니다 매우 유사한 다음과 같이, C에서 루프 사람들 아니면 우리가 사용할 수 있습니다 루프 구조에 대한 대안. 배열 var에 내가 들어, 어디 여전히 인덱스가됩니다. 하지만 당신은 지정할 필요가 없습니다 배열 점 길이 조건, 그리고 플러스 플러스. 모든 승객의 위치는 자신의 자리를 마크가 없습니다. 그러나 장소 표시가없는 위도와 경도. 우리는에 의해 이러한 매개 변수에 액세스 할 수있다 GET을 사용하여 형상을 얻는 장소 표시에 기하학. 그리고 우리는, 형상이되면 위도 또는 하나를 얻기 경도, 이러한 기능을 사용하여. 그래서 지금 우리가 여부를 감지하는 방법을 알고 승객 내에 우리의 셔틀의 범위. 우리가 그 승객이되면, 우리는거야 어떤 승객을 추가 할 그 범위 내에서. 우리는 그들에 도약 할 수 있도록 할, 그리고 우리의 셔틀 버스에 좌석을 가지고 있지만 우리는 그들을위한 충분한 공간이있는 경우. 셔틀 점 좌석 배열 것 좌석이 비어있는, 또는 여부를 나타냅니다 누가 그 자리에 있습니다. 그래서 좌석이 비어, 다음 경우 그 자리는 null이됩니다. 그래서 좌석 배열을 반복, 저장 빈 좌석에 대한 검사 당신까지 그 좌석에 승객 더 이상 빈 좌석이 없습니다. 그리고 불행하게도, 다른 승객 기다려야 할 것 다음 번 셔틀 주변에 온다. 그들은 셔틀에 도착하면, 우리는 할 수 있습니다 , 자신의 위치 표시를 제거 할 3 차원 세계에서의 사진입니다. 나는 장소 마크 (P)을 제거하고 싶어하는 경우 그때 나는 모든 기능을 얻을 것입니다 내 땅에서, 구글 어스에서 다음 특정 장소에게 제거 로 removeChild 함수를 사용하여 표시한다. 그런 다음 마지막으로,의 마커를 제거하자, 임의의 2 차원지도에 아이콘 우리가 따기 승객. 마커, m을 제거하려면 다음 나는거야 다만 M 도트 setMap의 널 (null)을 실행합니다. 범위 내에서 모든 승객에 대해이 작업을 수행, 당신은 픽업을 완료했습니다.