Wyszukiwanie strefy czasowej od szerokości geograficznej [zamknięte]

Czy jest dostępna jakaś Biblioteka (lub jeszcze lepsza usługa internetowa), która może przekształcić się z szerokości/długości geograficznej w strefę czasową?

Author: Matt Sheppard, 2008-09-03

8 answers

Spojrzałem dość głęboko na to pytanie w przypadku projektu, nad którym pracuję. GeoNames.org oraz EarthTools.com oba są dobrymi opcjami w wielu sytuacjach, ale z następującymi poważnymi wadami:

  • GeoNames.org wyszukuje strefę czasową, wyszukując najbliższy punkt w swojej bazie danych, który zawiera pole strefy czasowej. Często prowadzi to do niewłaściwego wyniku w pobliżu granic. Jest również boleśnie powolny, co prowadzi do czasów zapytań rzędu kilku sekund na żądanie. To również nie zwraca poprawną strefę czasową, jeśli w bazie danych nie ma żadnego elementu w pobliżu punktu zapytania. GeoNames ogranicza również liczbę zapytań, które można wykonać dziennie, co utrudnia operacje masowe.
  • EarthTools.org używa Mapy i jest w stanie szybko zwracać zapytania, ale nie bierze pod uwagę czasu letniego dla większości lokalizacji i zwraca surowe przesunięcie zamiast ID strefy czasowej (tj. zwracają "GMT-7" zamiast "America/Chicago"). Również, po prostu spojrzałem na ich stronę, podczas gdy przygotowując ten post, Google Chrome ostrzegł przed złośliwym oprogramowaniem na swojej stronie. To dla mnie nowość i może się zmienić, ale oczywiście jest powodem do niepokoju.

Te wady oznaczały, że te istniejące narzędzia nie były odpowiednie dla moich potrzeb, więc zwijałem własne rozwiązanie i opublikowałem je do ogólnego użytku. Można go znaleźć tutaj:

Http://www.askgeo.com/

AskGeo opiera się na mapie strefy czasowej świata, więc zwraca poprawną strefę czasową dla każdej ważnej szerokości geograficznej i Długość geograficzna. Zwraca standardowy identyfikator strefy czasowej (np. "America/Los_Angeles") używany w Linuksie i większości innych systemów operacyjnych i frameworków programistycznych. Zwraca również bieżące przesunięcie, z pełnym uwzględnieniem czasu letniego.

Jest niezwykle łatwy w użyciu i użycie jest udokumentowane na głównej stronie witryny. API obsługuje zapytania wsadowe, więc jeśli potrzebujesz wykonać wiele poszukiwań, Użyj interfejsu wsadowego, zamiast niszczyć nasze serwery żądaniami seryjnymi. The bulk zapytania są również znacznie szybsze, więc każdy wygrywa.

Kiedy po raz pierwszy uruchomiliśmy ten program, zbudowaliśmy go na Google App Engine (GAE) i uczyniliśmy go darmowym dla wszystkich użytkowników. Było to możliwe, ponieważ ceny GAE były w tym czasie tak niskie. Od tego czasu obciążenie naszego serwera znacznie wzrosło, a ceny GAE poszły w górę. Oba czynniki łącznie doprowadziły nas do przejścia na Amazon Web Services do hostingu i rozpoczęcia pobierania opłat za użytek komercyjny, zachowując jednocześnie bezpłatną usługę non-profit, niekomercyjną otwartą projekty źródłowe i badacze. Dla użytkowników komercyjnych udostępniamy 1000 bezpłatnych zapytań, aby potencjalni klienci mogli ocenić API, aby upewnić się, że spełnia ich potrzeby. Ceny i warunki można znaleźć na stronie internetowej.

Podstawowa biblioteka została napisana w języku Java i ze względu na popularne zapotrzebowanie, wydaliśmy również bibliotekę na licencji komercyjnej. Pełna dokumentacja biblioteki oraz szczegóły cenowe znajdują się na stronie internetowej.

Mam nadzieję, że to się przyda. To z pewnością było przydatne dla projektu I pracowałem nad tym.

 64
Author: James D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-08 12:58:50

Spójrz na Geonames.org

Jest to darmowy webservice, który pozwala uzyskać wiele informacji z długiego / lat

Udostępniają również darmowy (i open source) klient Java dla GeoNames WebServices library (biblioteka dla innych języków również: ruby, python, perl, lisp...)

Oto kilka informacji, które możesz uzyskać z long / lat: (pełna lista webservices tutaj)

  • Znajdź najbliższy adres
  • Znajdź najbliższy Skrzyżowanie
  • Znajdź pobliskie ulice
  • Elewacja
  • Strefa czasowa
 28
Author: Frederic Morin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-03 13:04:55

Strefy czasowe są teraz dostępne za pośrednictwem Google API

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

 12
Author: john,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-15 00:39:51

Yahoo places API dostarcza informacje o strefie czasowej poprzez odwrotną geolokalizację.

Zobacz to.

Http://developer.yahoo.com/geo/placefinder/guide/requests.html

 8
Author: Jiho Kang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-03 09:15:55

Ile dokładności potrzebujesz? Podzielenie długości geograficznej przez 15 byłoby prawie słuszne: p

 5
Author: Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-03 12:18:26

Wyglądają całkiem obiecująco-

Http://www.earthtools.org/webservices.htm

 4
Author: chs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-03 12:00:30

Eric Muller stworzył Shapefile map dla stref czasowych bazy danych TZ (Olson). Kilka drobnych zastrzeżeń:

  1. używane granice są często nieoficjalne.
  2. nie jest aktualizowana tak regularnie, jak sama baza danych tz, więc niektórych nowo utworzonych lub dostosowanych stref może brakować.

Te na bok, jednak wydaje się być bardzo dokładne dla większości celów.

 3
Author: Tim Parenti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-21 18:22:49

Silnik DRT pobiera szerokość, długość i lokalną datetime i zwraca przesunięcie strefy czasowej. Można to wykorzystać do określenia strefy czasowej konkretnej lokalizacji w przyszłej dacie.

 0
Author: Jules,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-15 01:30:59