>> [음악 연주]
>> 스피커 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)을 실행합니다.
범위 내에서 모든 승객에 대해이 작업을 수행, 당신은 픽업을 완료했습니다.