표류 병 푸 시 수요 의 논리 적 실현 코드
--
select unix_timestamp('2010-12-13') - unix_timestamp('2010-12-12')
-- :86400
이미 알 고 있 는 두 지역 의 위도 계산 거리 에 관 한 공식 에 대해 인터넷 에서 하 나 를 검색 하 였 으 며,계산 결 과 는 만 족 스 러 운 편 이다
ROUND((2 * ASIN(SQRT(POWER(SIN(((LAT*PI()/180.0)-(plat*PI()/180.0)) / 2), 2) + COS(LAT*PI()/180.0) * COS(plat*PI()/180.0) * POWER(SIN((LNG*PI()/180.0-plng*PI()/180.0) / 2), 2))))*6378.137*10000,3)/10000)
그 다음 에 두 데이터 의 정렬 방향 을 고려 하여 우리 가 원 하 는 것 은 지난번 푸 시 시간 이 길 수록 좋다 는 것 이다.사용자 와 의 거리 가 가 까 울 수록 좋 습 니 다.시간 이 길 수록 계 산 된 차 이 는 커 집 니 다.두 데 이 터 를 직접 더 하면 안 됩 니 다.여 기 는 시간 을 마이너스 로 해서 사용자 와 의 거리 가 가 까 울 수록 좋 은 요 구 를 만족 시 킨 다음 에 정렬 할 수 밖 에 없습니다.다시 이 두 수 를 같은 수량 급 에 두 고 데이터 테스트 에 따라 시간 은 초 이 고 거 리 는 킬로미터 입 니 다.직접 거 리 를 하나의 계수(1000)에 곱 하여 미터 로 환산 하여 두 자 를 균형 시 킵 니 다.최종 푸 시 문 구 는 다음 과 같 습 니 다
select BottleID,(ROUND((2 * ASIN(SQRT(POWER(SIN(((LAT*PI()/180.0)-(plat*PI()/180.0)) / 2), 2) + COS(LAT*PI()/180.0) * COS(plat*PI()/180.0) * POWER(SIN((LNG*PI()/180.0-plng*PI()/180.0) / 2), 2))))*6378.137*10000,3)/10000)as Distance from Bottle
inner join Venue_Mapabc
on Bottle.VenueID = Venue_Mapabc.VenueID
where Bottle.IsDrift =1 and Bottle.IsEmpty =1 and IsFinished=0 and Venue_Mapabc.City = pCity
-- and (ROUND((2 * ASIN(SQRT(POWER(SIN(((LAT*PI()/180.0)-(plat*PI()/180.0)) / 2), 2) + COS(LAT*PI()/180.0) * COS(plat*PI()/180.0) * POWER(SIN((LNG*PI()/180.0-plng*PI()/180.0) / 2), 2))))*6378.137*10000,3)/10000)>1.5
order by
(-(unix_timestamp(now())-unix_timestamp(Bottle.PlaceTime))*0.5 +
(ROUND((2 * ASIN(SQRT(POWER(SIN(((LAT*PI()/180.0)-(plat*PI()/180.0)) / 2), 2) + COS(LAT*PI()/180.0) * COS(plat*PI()/180.0) * POWER(SIN((LNG*PI()/180.0-plng*PI()/180.0) / 2), 2))))*6378.137*10000,3)/10000)*0.5*1000)
limit 1;
전단 캡 처:이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
iOSDC Japan 2019에서 "Swift와 논리+코일론"발표, 종합적인 내용(억지로) 확장과 동시에 붐비게 될'정규 연설틀'을 회피하고'기술 예수 수난기 공유연설'로 응모하는 등 필사적으로 고려할 수 있는 최선의 선택을 얻었다. 결과가 순조롭게 당선되어 기뻤지만 제목이 너무...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.