2017-04-19 3 views
1

캔버스에지도가있는 프로그램이 있습니다. 지도를 스크롤하면 마우스 포인터가 위치한 곳의 경도와 위도가 화면에 실시간으로 업데이트됩니다. 또한 마우스를 움직이면 일출, 일몰, 월출, 월몰, 달의 위상을 볼 수 있습니다. ephem을 제외하고는 모두 실시간으로 업데이트되지 않습니다.Ephem 실시간 업데이트 안함

이것은 마우스를 움직일 때마다 실행되는 코드의 특정 부분입니다.

self.maploc.lat, self.maploc.lon = str(py), str(px) 
sr = str(self.maploc.next_rising(ephem.Sun() 
ss = str(self.maploc.next_setting(ephem.Sun())) 
snr = sr.split(' ') 
sns = ss.split(' ') 
self.maploc.lat, self.maploc.lon = str(py), str(px) 
mr = str(self.maploc.next_rising(ephem.Moon())) 
ms = str(self.maploc.next_setting(ephem.Moon())) 
mn = ephem.Moon() 
mn.compute(self.maploc) 
mnr = mr.split(' ') 
mns = ms.split(' ') 

나는지도 좌표의 전체 갱신을 할 것 mn.compute (self.maploc)를 실행 생각하지만 그렇지 않습니다. 어제 내가 일리가있는 시간으로 라이브 업데이트 중일 것 같지 않음을 알게 된이 아이디어로 땜질하기 시작했다.

어떻게하면 실시간 업데이트를 얻을 수 있습니까? 또는 ephem으로 할 수 있습니까?

프로그램을 실행하면 프로그램을 종료하고 프로그램을 다시 시작할 때까지 달의 위상은 항상 동일하게 유지됩니다.

답변

0

maploc의 날짜를 재설정해야 할 수도 있습니다. 그렇지 않으면 next_rising()과 같은 루틴은 작성했을 때의 날짜를 기준으로 시간을 계산합니다.

from ephem import now 
... 
self.maploc.date = now() 

은 당신이 새로운 날짜와 시간에서 계산에 대해 생각을 시작하는 maploc를 업데이트 할 수있는 방법입니다. 행운을 빕니다!