Определение часового пояса конкретного места на основе его координат широты и долготы является общим требованием в различных приложениях. В этой статье блога мы рассмотрим несколько методов получения информации о часовом поясе на примерах кода. Давайте погрузимся!
Метод 1: использование библиотеки Geopy
from geopy.geocoders import Nominatim
from geopy import Point
from timezonefinder import TimezoneFinder
def get_timezone_geopy(latitude, longitude):
geolocator = Nominatim(user_agent="timezone_app")
location = geolocator.reverse(Point(latitude, longitude))
timezone = TimezoneFinder().timezone_at(lng=longitude, lat=latitude)
return location.timezone, timezone
# Usage
latitude = 40.7128
longitude = -74.0060
location_name, timezone = get_timezone_geopy(latitude, longitude)
print("Location:", location_name)
print("Time Zone:", timezone)
Метод 2. Использование API часовых поясов Google Maps
import requests
def get_timezone_google_api(latitude, longitude):
url = f"https://maps.googleapis.com/maps/api/timezone/json?location={latitude},{longitude}×tamp=1632825600&key=YOUR_API_KEY"
response = requests.get(url)
data = response.json()
location_name = data['timeZoneName']
timezone = data['timeZoneId']
return location_name, timezone
# Usage
latitude = 40.7128
longitude = -74.0060
location_name, timezone = get_timezone_google_api(latitude, longitude)
print("Location:", location_name)
print("Time Zone:", timezone)
Метод 3: использование библиотеки Pytz
import pytz
from datetime import datetime
def get_timezone_pytz(latitude, longitude):
timezone = pytz.timezone(pytz.country_timezones('US')[0])
location_name = timezone.zone
return location_name, timezone
# Usage
latitude = 40.7128
longitude = -74.0060
location_name, timezone = get_timezone_pytz(latitude, longitude)
print("Location:", location_name)
print("Time Zone:", timezone)
Метод 4. Использование библиотеки Timezonefinder
from timezonefinder import TimezoneFinder
def get_timezone_timezonefinder(latitude, longitude):
timezone = TimezoneFinder().timezone_at(lng=longitude, lat=latitude)
return timezone
# Usage
latitude = 40.7128
longitude = -74.0060
timezone = get_timezone_timezonefinder(latitude, longitude)
print("Time Zone:", timezone)
В этой статье мы рассмотрели различные методы получения информации о часовом поясе по координатам широты и долготы. Мы рассмотрели методы с использованием таких библиотек, как Geopy, API часовых поясов Google Maps, Pytz и Timezonefinder. В зависимости от ваших конкретных требований и предпочтений вы можете выбрать метод, который лучше всего подходит для вашего проекта. Теперь у вас есть необходимые инструменты для точного определения часового пояса любого места по его географическим координатам.