문제

위도/경도에서 GMT (또는 시간대)의 오프셋을 추정하는 방법이 있습니까? Geonames를 보았지만 장기적으로 작동해야하며 실제로 웹 서비스에 의존하고 싶지 않습니다. 다양한 사용자에게 정보를 제공 할 때 "오늘"또는 "오늘 밤"을 표시할지 여부를 결정하는 데 사용되므로 너무 정확할 필요가 없습니다 (1 ~ 2 시간이 나쁘지는 않습니다).

도움이 되었습니까?

해결책

offset = direction * longitude * 24 / 360

여기서 방향은 동쪽의 경우 1이고 서쪽의 경우 -1, 경도는 (-180,180)입니다.

다른 팁

경도만으로 시간대를 기초로하는 것은 국제 해역 밖에서 매우 부정확합니다. 이 페이지의지도를 참조하십시오.

http://askgeo.com/database/timezone

심해의 수직 색조는 경도에서만 파생 된 소위 자연 시간대이며, 토지의 색은 통치 법에 따라 실제 시간대입니다. 당신은 그들이 잘 정렬되지 않는다는 것을 알 수 있습니다.

나는 다른 프로젝트를 수행하는 동안 실제로이 문제를 해결하고 실질적인 연구 및 개발을 수행했습니다. 먼저 내 연구 :

  • 첫째, 시간 영역은 일반적으로 GMT (일명 UTC)의 오프셋으로 인코딩되지 않습니다. 일광 절약 시간과 수년에 걸친 시간대의 변화를 고려하지 않습니다. 대신, 시간대 ID는 공식 시계 시간이 주어진 기간 동안 영역 전체에서 동일한 지리적 영역을 지정하는 데 사용됩니다 (예 : 1970 년 이후). 이러한 ID의 가장 중요한 시스템은 Linux 및 기타 UNIX 운영 체제에서 사용하는 "Olson Time Zone ID"(이러한 ID 및 오프셋 규칙은 "TZ 데이터베이스"라고 알려짐)입니다. 대부분의 프로그래밍 언어 및 운영 체제에는 Olson Time Zone ID에 대한 기본 또는 타사 지원이 있습니다.

위도와 경도를 시간대로 변환하기위한 기존 솔루션 측면에서 :

  • geonames.org에는 광대 한 지점 위치 (도시, 공항, 공공 건물 등)의 방대한 데이터베이스가 있으며, 각각은 Olson Time Zone ID를 포함하여 유용한 메타 데이터로 주석이 달라집니다. 그리고 그들은 웹을 통해 이들 액세스 할 수있는 멋진 API를 가지고 있습니다. 문제는 귀하가 쿼리하는 지점이 데이터베이스의 레코드 위에 있지 않으면 타임 존 테두리의 반대편에있는 결과를 얻을 수 있거나 쿼리가 전혀 응답 할 수 없다는 것입니다. 가장 가까운 지점에서 멀다. 웹 서비스는 또한 고통스럽게 느리고 하루에 만들 수있는 쿼리 수를 상대적으로 적은 수로 제한합니다.

  • Earth Tools (http://www.earthtools.org/webservices.htm)도 이에 대한 서비스가 있으며 Geonames보다 훨씬 빠르지 만 시간대 ID가 아닌 GMT에서 오프셋을 반환합니다. 'T는 대부분의 세계에서 일광 절약 시간을 올바르게 처리합니다. 또한 유지되지 않은 것 같습니다. 따라서 데이터가 더 이상 정확한지 확실하지 않습니다 (시간 영역이 시간이 지남에 따라 변경됨).

이러한 옵션을 검토하고 성공하지 못한 다른 가능성을 검색 한 후, 나는 내 솔루션을 구축하기로 결정하고 다음에서 발표했습니다.

http://askgeo.com

AskGeo는 세계의 시간대지도를 기반으로하므로 모든 유효한 위도와 경도에 대해 유효한 시간대를 반환합니다. Linux 및 대부분의 기타 운영 체제 및 프로그래밍 프레임 워크에서 사용되는 표준 Olson Time Zone ID (예 : "America/Los_angeles")를 반환합니다. 또한 일광 절약 시간을 완전히 고려하여 현재 오프셋을 반환합니다.

사용하기가 매우 쉽고 사용법은 사이트의 기본 페이지에 문서화되어 있습니다. API는 배치 쿼리를 지원하므로 많은 조회를 수행 해야하는 경우 직렬 요청으로 서버를 아래로 내리는 대신 배치 인터페이스를 사용하십시오. 벌크 쿼리도 훨씬 빠르므로 모두가 승리합니다.

우리가 이것을 처음 시작했을 때, 우리는 그것을 Google App Engine (GAE)에 구축하여 모든 사용자에게 무료로 만들었습니다. 그 당시 GAE의 가격이 너무 낮았 기 때문에 가능했습니다. 그 이후로 서버로드가 크게 증가했으며 GAE의 가격이 상승했습니다. 두 가지 요소 모두 우리는 호스팅을 위해 Amazon Web Services로 전환하고 상업용 사용 비용을 청구하는 동시에 비영리 비영리 오픈 소스 프로젝트 및 연구원을위한 서비스를 무료로 유지했습니다. 상용 사용자의 경우 잠재 고객이 API를 평가하여 자신의 요구를 충족시킬 수 있도록 1000 개의 무료 쿼리를 제공합니다. 가격 및 약관은 웹 사이트를 참조하십시오.

기본 도서관은 Java로 작성되었으며 대중적인 수요로 인해 상업용 라이센스로 도서관을 공개했습니다. 라이브러리의 전체 문서 및 가격 세부 정보는 웹 사이트에 있습니다.

이것이 유용하기를 바랍니다. 확실히 내가 작업 한 프로젝트에 유용했습니다.

사용자의 경도를 알고 있다면, 당신은 그들에 대한 모든 시간의 모든 측면을 완전히 알고 있습니다 (특수 상대성 이론 등과 같은 작은 오류를 무시 함). 평균 태양 시간은 단순히 GMT와 경도의 차이입니다 (학위 부분을 몇 분으로 1도 = 60 분). 동쪽 또는 서쪽을 기준으로 추가하거나 빼십시오. 평균 태양 시간은 기본적으로 시간 구역보다 정확한 시간입니다. 낮과 밤 시간은 가변적이며 위도에 따라 다르므로 위도와 날짜와 연도를 취하는 일출 및 일몰 시간의 근사치를 사용합니다. 이것만으로도 낮과 밤의 상당히 정확한 개념을 제공 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top