我正試圖編寫一個世界時鐘應用程序,該應用程序返回給定時區的日出和日落信息。思想是用戶將指定GMT偏移量或明確給出時區。然後,應用程序將使用找到的java.util.TimeZone(或可能給出GMT偏移量)查找緯度和經度。我意識到時區通常不是獲取地理位置信息的非常準確的方式,因爲它們大多基於政治邊界,但似乎存在這樣的情況。我發現的大多數網站/ apis會給出經緯度的時區,但是我想做一個反向搜索(返回給定時區的經度和緯度)。在此先感謝您的幫助。從Java中的時區獲取緯度和經度
回答
時區是一個區域,那麼你就必須回到這個區域的邊界的座標(也可能添加一些方法來檢查指定點內)。所以你必須從地理數據開始。請記住,很多國家都有夏令時,所以時區不是恆定的。
Geonames.org有城鎮的一個可下載的數據庫,其中包括各種信息,包括時區和人口。您可以使用它來填充從時區到當時最大城市位置的數據庫。
注意GMT偏移量是非常無用用於此目的,但幸運的時區ID的大陸/城市術語使得它很容易爲用戶選擇正確的一個。
我原則上喜歡這個想法,但我認爲數據庫的大小對於android應用程序來說可能過大。 – Hobo
@Hobo:如果您只需要時區,則只有大約400個映射 - 根本不大。如果您希望獲得更準確的信息,可以按人口規模進行分類,幷包含只有2000個最大的城市。 –
讓我告訴你錯誤的級別,如果你這樣做是爲了我的祖國,新西蘭,這是在一個時區(除偏遠島嶼),你可以期待,但綿延在大範圍緯度:
Invercargill, New Zealand
Time zone: NZST
Sunrise today: 7:05 am
Auckland, New Zealand
Time zone: NZST
Sunrise today: 6:34 am
期待與中國(全國是一個時區),智利,阿根廷,以及其他類似的問題。
不錯的想法,但可能不可行。
讀完所有人的回答後,我想我可能會使用Google's Geocoding API,它會返回給定物理地址的緯度/經度和時區。我只需添加一個界面,讓用戶輸入地址,城市或郵政編碼,以便從api中檢索信息並計算日出/日落時間。這比試圖將所有這些信息本地存儲在數據庫(這將是巨大的)要好。感謝所有回答。
- 1. 獲取緯度和經度
- 2. 獲取經度和緯度
- 3. 從國名獲取經度和緯度
- 4. 從GpsMyLocationProvider獲取經度和緯度(OSMdroid)
- 5. 獲取緯度和經度從PIN碼
- 6. 從PostCode獲取經度和緯度
- 7. 從restfb獲取緯度和經度
- 8. 獲取mapbox.js中的緯度和經度
- 9. 從php的經度和緯度獲取地區名稱
- 10. 從webservice獲取區域的經度和緯度
- 11. 從GPS獲取高度/緯度/經度
- 12. 使用緯度和經度獲取時區?
- 13. 從緯度經度時區查詢
- 14. 從CLLocation獲取經緯度
- 15. 從json獲取經緯度
- 16. Rails使用時區從經緯度獲取時區
- 17. 從TWebBrowser的GoogleMaps獲取緯度經度
- 18. 獲取地址的緯度和經度
- 19. 獲取經度和緯度的限制
- 20. 緯度和經度Java
- 21. java反向代碼從經度和緯度獲取地址
- 22. 從PHP中的json獲取經度和緯度。未從那裏的緯度和經度是工作
- 23. 獲取經緯度從經緯度對象的Android
- 24. 從jxmapviewer2獲取緯度經度
- 25. 獲取緯度,經度從地址
- 26. 如何從iOS中的經度和緯度識別時區
- 27. 在Java中獲取用戶當前的緯度和經度
- 28. 無法獲取經度和緯度android
- 29. 獲取經度和緯度值更快
- 30. 獲取緯度和經度html js
時區會爲您提供數十公里長的線路。幸運的是,如果你砍掉海洋,這隻會減少到幾千公里。你仍然留下最好的經度+/- 5度,只有輕微的想法是什麼緯度(21度傾斜並不是那麼重要,並且很難在時區中反映出來)。 – bdares
你可以有一個近似的經度,但絕對沒有關於緯度。 –
@bdares:a * real *時區至少具有國家粒度以適應夏令時和歷史變化。 –