Tra cứu múi giờ từ kinh độ vĩ độ [đã đóng]


79

Có thư viện nào (hoặc thậm chí tốt hơn, dịch vụ web) có thể chuyển đổi từ vĩ độ / kinh độ thành múi giờ không?


9
Có một giải pháp không phải webservice cho việc này không? Tôi có một trường hợp sử dụng mà tôi có kết nối internet không thường xuyên và vẫn cần lấy thông tin này tại hiện trường. Cơ sở dữ liệu về địa lý múi giờ với API ở trên sẽ rất hữu ích.
Simon Gillbee


Có, có một thư viện thương mại có sẵn tại askgeo.com để thực hiện chính xác điều này. Nó được viết bằng Java, là luồng an toàn và rất nhanh (10.000 truy vấn mỗi giây).
James D

1
Khi tất cả được nói và làm xong, thời gian chỉ là một thứ nguyên để lập kế hoạch. "Giờ" không liên quan đến chu kỳ ngày của địa phương vì điều này thay đổi hàng năm ngay cả đối với một vị trí nhất định. Nó sẽ làm cho mọi thứ trở nên đơn giản hơn rất nhiều nếu mọi người sử dụng thời gian Sidereal tính bằng giây, kilo giây, megaseconds, v.v. Một kSec là khoảng 17 phút, một đoạn thời gian rất con người. Một ngày là khoảng 86,4kSec. Nó không phải là một số chẵn, nhưng vậy thì sao? Không có ngày nào có độ dài chính xác như ngày trước bởi vì sự quay của hành tinh đang chậm lại.
Peter Wone

Câu trả lời:


64

Tôi đã xem xét khá sâu câu hỏi này cho một dự án mà tôi đang thực hiện. GeoNames.org và EarthTools.com đều là những lựa chọn tốt cho nhiều trường hợp nhưng có những sai sót nghiêm trọng sau:

  • GeoNames.org tìm múi giờ bằng cách tìm kiếm điểm gần nhất trong cơ sở dữ liệu của họ có chứa trường múi giờ. Điều này thường dẫn đến kết quả sai gần biên giới. Nó cũng rất chậm, dẫn đến thời gian truy vấn theo thứ tự vài giây cho mỗi yêu cầu. Nó cũng không trả về múi giờ hợp lệ nếu không có mục nào trong cơ sở dữ liệu của họ gần điểm truy vấn. GeoNames cũng hạn chế số lượng truy vấn có thể được thực hiện mỗi ngày, khiến các hoạt động hàng loạt trở nên khó khăn.
  • EarthTools.org sử dụng bản đồ và có thể trả lại các truy vấn một cách nhanh chóng, nhưng nó không tính đến thời gian tiết kiệm ánh sáng ban ngày cho hầu hết các vị trí và nó trả về độ lệch thô thay vì ID múi giờ (tức là chúng trả về "GMT-7 "thay vì" America / Chicago "). Ngoài ra, tôi vừa xem trang của họ trong khi chuẩn bị bài đăng này và Google Chrome đã cảnh báo về phần mềm độc hại trên trang của họ. Điều đó là mới đối với tôi và nó có thể thay đổi, nhưng rõ ràng là một nguyên nhân đáng lo ngại.

Những sai sót này có nghĩa là những công cụ hiện có này không phù hợp với nhu cầu của tôi vì vậy tôi đã đưa ra giải pháp của riêng mình và đã xuất bản nó để sử dụng chung. Bạn có thể tìm thấy nó ở đây:

http://www.askgeo.com/

AskGeo dựa trên bản đồ múi giờ trên thế giới, vì vậy nó trả về múi giờ hợp lệ cho mọi vĩ độ và kinh độ hợp lệ. Nó trả về ID múi giờ tiêu chuẩn (ví dụ: "America / Los_Angeles") được sử dụng trên Linux và hầu hết các hệ điều hành và khung lập trình khác. Nó cũng trả về mức bù đắp hiện tại, tính đến thời gian tiết kiệm ánh sáng ban ngày.

Nó cực kỳ dễ sử dụng và cách sử dụng được ghi lại trên trang chính của trang web. API hỗ trợ các truy vấn hàng loạt, vì vậy nếu bạn cần thực hiện nhiều tra cứu, vui lòng sử dụng giao diện hàng loạt thay vì làm hỏng máy chủ của chúng tôi với các yêu cầu nối tiếp. Các truy vấn hàng loạt cũng nhanh hơn nhiều, vì vậy ai cũng thắng.

Khi chúng tôi lần đầu khởi chạy ứng dụng này, chúng tôi đã xây dựng nó trên Google App Engine (GAE) và cung cấp miễn phí cho tất cả người dùng. Điều này là có thể bởi vì giá của GAE rất thấp vào thời điểm đó. Kể từ đó, tải máy chủ của chúng tôi đã tăng lên đáng kể và giá của GAE đã tăng lên. Cả hai yếu tố kết hợp lại khiến chúng tôi chuyển sang Amazon Web Services để lưu trữ và bắt đầu tính phí cho mục đích sử dụng thương mại, trong khi vẫn giữ dịch vụ miễn phí cho các dự án nguồn mở phi lợi nhuận, phi thương mại và các nhà nghiên cứu. Đối với người dùng thương mại, chúng tôi cung cấp 1000 truy vấn miễn phí để khách hàng tiềm năng đánh giá API để đảm bảo nó đáp ứng nhu cầu của họ. Xem trang web để biết giá cả và các điều khoản.

Thư viện cơ bản được viết bằng Java và do nhu cầu phổ biến, chúng tôi cũng đã phát hành thư viện theo giấy phép thương mại. Tài liệu đầy đủ của thư viện và chi tiết giá cả đều có trên trang web.

Tôi hy vọng điều này là hữu ích. Nó chắc chắn hữu ích cho dự án tôi đang thực hiện.


Có cách nào để chuyển đổi từ ID múi giờ của bạn (ví dụ: "America / Los_Angeles") sang .NET System.TimeZoneInfo không?
Judah Gabriel Himango

Trang này chứa ánh xạ giữa id cơ sở dữ liệu tz (còn được gọi là id Olson) và id múi giờ của Windows: unicode.org/repos/cldr-tmp/trunk/diff/supplemental/…
James D

Công việc tốt đẹp. Sẽ rất tốt nếu một ngày có thể được chuyển vào để có được sự bù đắp được điều chỉnh ánh sáng ban ngày cho một thời điểm khác nhau. Thêm Tên Windows TimeZone sẽ là một phần thưởng bổ sung.
CodeGrue

1
Bạn có dự định chấp nhận một tham số gọi lại để JSONP hoạt động không?
Jon Nylander,

8
Trừ khi tôi bỏ lỡ điều gì đó, điều này không còn miễn phí nữa: API miễn phí để dùng thử và nó miễn phí cho mục đích sử dụng cá nhân và phi thương mại. Các dự án nguồn mở, sinh viên và cá nhân có thể sử dụng nó miễn phí (tuân theo hướng dẫn sử dụng của chúng tôi). Bất kỳ người dùng nào muốn sử dụng API cho mục đích thương mại phải trả phí truy cập 200 đô la mỗi năm.
Arry

28

Hãy xem Geonames.org

Đó là một dịch vụ web miễn phí cho phép bạn nhận được nhiều thông tin từ một thời gian dài / vĩ độ

Họ cũng cung cấp một Java Client miễn phí (và mã nguồn mở) cho thư viện GeoNames Webservices (thư viện cho ngôn ngữ khác cũng được cung cấp: ruby, python, perl, lisp ...)

Dưới đây là một số thông tin bạn có thể nhận được từ lâu / vĩ độ: (danh sách đầy đủ các dịch vụ web tại đây)

  • Tìm địa chỉ gần nhất
  • Tìm giao lộ gần nhất
  • Tìm đường phố lân cận
  • Độ cao
  • Múi giờ

1
điều này sẽ cung cấp cho bạn thời gian hiện tại và offsets để tiết kiệm ánh sáng ban ngày và tiêu chuẩn nhưng tôi đang gặp rắc rối phát hiện liệu một ngày trong tương lai đang được tiết kiệm ánh sáng ban ngày
Scott Cowan

cho rằng, lịch Java có lẽ sẽ hữu ích hơn
Frederic Morin

12

Múi giờ hiện có sẵn qua Google API

https://developers.google.com/maps/documentation/timezone/


Điều này thật tuyệt, bạn có biết tôi cũng đang sử dụng API Google Maps để mã hóa địa lý không, nếu giới hạn 2.500 là dành cho tất cả các yêu cầu hay 2.500 đối với mã hóa địa lý và 2.500 khác cho múi giờ?
Tesla


5

Bạn cần bao nhiêu độ chính xác? Chia kinh độ cho 15 gần như đúng: p


6
Tôi đã khá bối rối khi đưa ra câu trả lời này, nhưng cho đến khi tôi gặp lại câu hỏi này khi cố gắng tự giải quyết vấn đề, tôi mới nhận ra rằng ý tưởng này hoàn toàn vô ích như thế nào: upload.wikimedia.org/wikipedia/commons/e/e7 /Timezones2008.png (trừ khi bạn đang ở trong vùng biển quốc tế)
Tom

1
Tôi nhìn vào bản đồ đó và nghĩ rằng cách tiếp cận mà bạn đề xuất thực sự khá phù hợp cho một ước tính sơ bộ. Tôi, ví dụ, cần một cái gì đó khá gần đúng (một vài giờ cũng được), và chia kinh độ cho 15 có vẻ là một giải pháp tốt. Trên bản đồ, dường như có rất ít nơi sinh sống trên trái đất, xung quanh đường ngày quốc tế, nơi chia cho 15 sẽ khiến nó sai một cách khủng khiếp.
MB.

2
Sử dụng toán học không phải lúc nào cũng được khuyến khích sử dụng múi giờ theo quan điểm chính trị. Nhưng nếu người ta cần biết liệu có đêm hay ngày, cách tiếp cận này có thể được giải quyết theo chương trình mà không cần bất kỳ dịch vụ web nào. Cảm ơn vì ý tưởng này.
JackPearse

Có, askgeo.com (tiết lộ đầy đủ: Tôi điều hành trang web). Bạn có thể mua một thư viện Java thực hiện việc này trên máy chủ của riêng bạn.
James D

4

Eric Muller đã tạo bản đồ shapefile cho các múi giờ của cơ sở dữ liệu tz (Olson). Tuy nhiên, một số lưu ý nhỏ:

  1. Các ranh giới được sử dụng thường không chính thức.
  2. Nó không được cập nhật thường xuyên như chính cơ sở dữ liệu tz, vì vậy một số vùng mới được hình thành hoặc điều chỉnh có thể bị thiếu.

Tuy nhiên, những điều đó sang một bên, nó có vẻ rất chính xác cho hầu hết các mục đích.



0

DRT Engine lấy vĩ độ, kinh độ và ngày giờ địa phương và trả về độ lệch múi giờ. Điều này có thể được sử dụng để thiết lập múi giờ của một vị trí cụ thể vào một ngày trong tương lai .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.