2013-04-09 31 views
6

Tôi không chắc liệu nó có thực sự liên quan đến Android hay không, nhưng vì tôi sẽ sử dụng nó cho một ứng dụng Android, tôi cũng đang gắn thẻ cho Android.Tính toán thời gian mặt trời không khớp với kết quả của Google

Tôi đang cố gắng xây dựng một số logic để tính thời gian mặt trời mọc nếu có thời gian dài.

Tôi đã thử làm theo, nhưng mọi thứ cho thời điểm hơi khác nhau của Mặt trời mọc của vị trí tôi cung cấp (với Bangalore, Ấn Độ) và khi tôi tìm kiếm từ khóa với một từ khóa Bangalore Sunrise Google cung cấp kết quả khác thẻ trông chính xác hơn:

Tất cả đều mang lại kết quả khác nhau, và Google trông có vẻ chính xác hơn.

Có ai ở đây biết về API hoặc tính toán tốt hơn cho điều này không? Hoặc thuật toán/dịch vụ web mà Google đang sử dụng cho thẻ của họ?

Bất kỳ trợ giúp nào được đánh giá cao.

+0

Mức chênh lệch lớn như thế nào? "Bangalore" không phải là một lat/long chính xác, đó là một phạm vi của chúng. Vào khoảng 12 ° 58 ′, người kết thúc di chuyển về phía tây vào khoảng 1600KPH - đủ nhanh để làm cho bạn sai một cách nhanh chóng nếu bạn đang sử dụng một kinh độ khác với Google. –

+0

Sự khác biệt trung bình là khoảng 30 phút. Nếu tôi tìm kiếm google cho 'Bangalore lat long', nó mang lại cho tôi khoảng thời gian dài và tôi sử dụng cùng các giá trị trong phép tính, giả sử rằng chúng cũng sử dụng như nhau. –

Trả lời

0

Một tìm kiếm nhanh chóng đưa tôi đến với api này

http://www.earthtools.org/webservices.htm#sun

+0

Ồ vâng, tôi đã thử nó. Khá nhiều sự khác biệt so với những gì Google hay Weather.com nói. Có liên kết này trong câu hỏi của tôi quá. Tôi đã muốn tính toán nó ngoại tuyến chỉ –

0

tôi đã không nghiên cứu tất cả các liên kết bạn đã cho, nhưng rất có thể sự khác biệt xuất phát từ giả định khác nhau & định nghĩa. Đặc biệt, các yếu tố sau có xu hướng thay đổi từ thuật toán để thuật toán:

  • khúc xạ khí quyển bao gồm hoặc không (tức là "true" hoặc "rõ ràng" cao)
  • "Top" hoặc "trung tâm" của mặt trời phá vỡ chân trời

Chắc chắn có các yếu tố khác, và vấn đề ngày càng trở nên không được xác định là vĩ độ càng xa đường xích đạo. Nhưng những yếu tố này một mình có thể chiếm phút cho sự khác biệt.

+0

Đồng ý. Và tôi cho rằng mặt trời mọc khá là tương đối, vì có nhiều sự kiện liên quan đến ánh sáng đến sau đêm. Tuy nhiên, nếu ai đó đi lên để xác minh thời gian mặt trời mọc của thành phố hiện tại, họ sẽ đặt Google lên vị trí đầu tiên và nếu có sự khác biệt lớn giữa tính toán và ứng dụng của tôi thì điều đó sẽ gây ấn tượng xấu. –

2

Giờ chuẩn Ấn Độ là UTC + 05: 30, đó có thể là lý do bạn thấy chênh lệch 30 phút.

Thuật toán có thể tính thời gian mặt trời mọc trong UTC, nhưng sẽ không thể chuyển đổi UTC thành giờ địa phương, đòi hỏi kiến ​​thức về múi giờ phức tạp. Thuật toán có thể làm điều gì đó rất đơn giản, như

localTime = utcTime + 1_hour * longitude/15_degree 

là 5 giờ cho thành phố Banglore.

Bạn nên dành thời gian UTC, sau đó chuyển đổi thành giờ địa phương bằng cách sử dụng API ngày Java.

+0

Những tính toán này hỏi tôi thời gian dài, vì vậy tôi cho rằng họ đang tính chênh lệch thời gian trong tài khoản? –

+0

thuật toán có thể tính toán thời gian mặt trời mọc trong UTC, nhưng nó sẽ không thể chuyển đổi UTC thành giờ địa phương, đòi hỏi kiến ​​thức về múi giờ phức tạp. thuật toán có thể chỉ cần thêm '1giờ * kinh độ/15', đó là 5 giờ cho Banglore. đó là quá đơn giản. – ZhongYu

+0

Oh cảm ơn. btw, thuật toán nào bạn đang đề cập đến? bất cứ ai từ liên kết tôi đăng trong câu hỏi? Nó sẽ giúp tôi thu hẹp nó xuống. –

Các vấn đề liên quan