- aixos를 사용하기 때문에 위치에 대한 state를 기본 값을 주고 false가 리턴되면 setState를 하지 않는다. 위도경도로 주소를 리턴하느 함수를 따로 만들어서 처음에 랜딩 될때 내 위치, 드래그한 위치 둘다에 씀. 주소를 검색 했을 때 쓰는 함수 만들기 시작.
- 주소를 검색했을 때 위도, 경도, formatted 주소를 받아와서 panTo() 함수 안에 위도 경도를 넣으면 검색한 위치로 지도의 센터가 변함.
- 버튼 만들어서 검색한 주소를 place에 저장.
- 유저의 현재위치를 계속 받아오는 이벤트, map에 Marker 인스턴스 생성하고 옵션 지정,
- userMarker에 위도 경도 넣음. 컴포넌트가 mount 될때는 getCurrentPosition()을하고 userMarkerOptoins 함수 안에서 watchposition()한다.
- 목적지를 검색 버튼 클릭하면 마커를 표시하는 함수 생성. userMarker 함수와 비슷하다.
- maps.latlngBounds 인스턴스 생성. 경로를 표시하느 함수 만듬. 현재 위치와 목적지 this.state 에서 가져오고, 경로 선 옵션 지정, DirectionsService() 인스턴스 생성.
- DirecitonsRequest 객체를 만든다. 현재위치,목적지, TravelMode.Driving. 생성한 directions를 setMap하면 지도에 경로가 표시됨.
- 요금 함수 만들기 setPrice() this.state 에서 거리를 가져온다음 parseFloat() 하고 *3 해줌.
- 유저의 최근 위치 기록하는 쿼리 만듬
- get nearby user 쿼리. 드라이버 모드에서 주변에 있는 유저 데이터 가져오는 쿼리 만듬.
- nearByQueries 프로퍼티 onCompleted 에 함수를 넣고 근처의 드라이버의 정보를 받아 온다.
- 유저가 드라이버를 볼수 있는 함수. 드라이버의 markerOptions 설정하고 setMap()
- 드라이버가 표시 안되는 버그 해결방법. NearbyQueries에 pollInterval을 프롭으로 설정 1초에 한번씩 map이 rerending 하게 한다.
- 드라이버 위치 업데이트 하기 버그 생겨서 다시 만듬. subscription 으로 할 수 도 있지만 채팅 기능은 당연히. 하지만 운전자의 위치 정도는 pollInterval로도 충분하다는 의견.
- subscrioption 을 사용하기 위해 뭐저 apollo-boost ejecting 함. websocket, http, localstate 등 combinateLinks라는 함수를 만들어서 false일 때는 httpLink 를 연결하고 ture 일때는 wsLink 가 안결되게 한다. apolloboost가 http 인지 subscription 인지 구분하는 기능이 없어서 함수를 만든거.
- Request ride 쿼리 만듬. variable 이 너무 많아.
- 드라이버에게 승객의 이름과 프로필사진 주기. ProfileQuery 컴포넌트에 onComplete 프롭에 profile 가져오는 함수 넣음. 거기에서 isDriving 으로 드라이버인 true 인지. isDriving으로 NearbyDriver를 스킵함.
- 버그 수정. pollInterval이 있으면 skip이 실행되지 않는다. 승객의 정보를 불러오지 못하는것은 서버 resolver에서 관계 추가.