2013-08-01 77 views
0

如果我傳遞經度和緯度,作爲迴應,我需要GMT時區值。GMT輸入偏移量:經度和緯度

例如:

  • 緯度:21.7679
  • 經度:78.8718
  • 響應除外:GMT + 05:30

我不希望使用任何web服務。

+1

不使用某種,或時區的多邊形定義數據庫的在線資源,你將很難實現這個自己,因爲沒有一個簡單的函數從經度時區。看看世界時區的地圖,如果你懷疑這一點;即使在經度0處,也有多個時區。哦,格林威治時間是上個世紀,UTC是現在的人。 –

+1

@HighPerformanceMark *格林威治標準時間是上個世紀,*。給我一個笑。 – christopher

回答

2

如果您不想使用Web服務,您將需要相當多的信息才能獲得精確的結果。有一個hack然而,這會輕易放棄近似的結果:

Divide longitude by 15 

根據www.timeanddate.com

... 每個時區是那麼理論上寬15度,相當於在一個小時的時差意味着太陽時間。實際上,時區的形狀會發生變化,以匹配內部和國際邊界。格林尼治經絡東西兩側每隔15度向前和向後分別改變一小時。人們需要將經度以度數除以15,以小時爲單位找到適當的時區。例如:

At 150 degrees west (or 150° W) longitude, the time should be 150 degrees divided by 15 degrees = 10 hours behind Coordinated Universal Time (UTC/GMT) (or UTC-10). 
At 75 degrees east (or 75° E) longitude, the time would be 75 degrees divided by 15 degrees = 5 hours ahead of UTC/GMT (or UTC+5). 
+1

迂迴曲折的時區不會從原始子午線每+/- 15度改變一次,時區0以主子午線爲中心,接下來的東區和西區開始於+/- 7.5deg。而且,爲了說明我對這個問題的評論,這個方法在OP的例子中失敗了;它不會在印度產生經度5點30分的抵消。 –

+0

夠公平的!這就是爲什麼寫_approximate結果_...我會使用一個Web服務。 –