2011-09-08 4 views
-1

나는 주어진 시간대의 일출과 일몰 정보를 반환하는 세계 시계 응용 프로그램을 작성하려고합니다. 사용자는 GMT 오프셋을 지정하거나 명시 적으로 시간대를 지정합니다. 그런 다음 응용 프로그램은 java.util.TimeZone found (또는 GMT 오프셋이 주어진 경우)를 사용하여 위도와 경도를 조회합니다. 시간대는 정치적 경계를 기반으로하기 때문에 일반적으로 지구 위치 정보를 얻는 데 매우 정확한 방법이 아니라는 점을 알고 있습니다. 그러나 이러한 것이 존재하는 것처럼 보입니다. 대부분의 사이트/API는 위도와 경도에 대한 시간대를 제공하지만 역 검색 (주어진 시간대에 대한 위도 및 경도 반환)을 수행하려고합니다. 귀하의 도움에 미리 감사드립니다.Java의 시간대에서 위도와 경도 가져 오기

+1

시간대를 사용하면 수십 킬로미터 길이의 선이 생깁니다. 다행히도 바다를 자르면 수천 킬로미터로 줄어 듭니다. 당신은 여전히 ​​위도가 어느 정도인지에 대해서만 약간의 아이디어를 가지고 +/- 5 degrees-ish의 경도를 남겨 둡니다 (21도 기울기가 그다지 중요하지 않고 시간대에 거의 반영되지 않습니다). – bdares

+2

위도에 대해서는 근사치를 사용할 수 있지만 위도에 대해서는 명확히 알 수 없습니다. –

+1

@bdares : * 실제 * 시간대는 일광 절약 시간 및 변경 사항을 반영하기 위해 최소한 국가별로 세분화되어 있습니다. –

답변

0

시간대는 지역이므로이 지역의 경계 좌표를 반환해야합니다 (그리고 주어진 점이 내부에 있는지 확인하기 위해 일부 방법을 추가해야 할 것입니다). 따라서 지리 데이터로 시작해야합니다. 많은 국가에서는 서머 타임이 있으므로 시간대가 일정하지 않습니다.

1

Geonames.org에는 시간대 및 인구를 포함한 모든 종류의 정보가 포함 된 다운로드 가능한 마을 데이터베이스가 있습니다. 시간대에서 해당 시간대의 가장 큰 도시 위치에 매핑하는 데이터베이스를 채우는 데 사용할 수 있습니다.

GMT 오프셋은이 용도로는 쓸모가 없지만 다행히도 대륙/도시 용어를 사용하면 사용자가 올바른 표준 시간대를 쉽게 선택할 수 있습니다.

+0

나는이 아이디어를 원칙적으로 좋아하지만, 안드로이드 앱의 경우 데이터베이스의 크기가 엄청나게 클 것이라고 생각한다. – Hobo

+0

@ 호보 : 시간대 만 사용하는 경우 약 400 개의 매핑이 있습니다. 더 정확한 결과를 얻으려면 인구 크기별로 정렬하고 예를 들어 다음을 포함 할 수 있습니다. 2000 대도시. –

2

멀리 떨어진 섬을 제외한 한 시간대에있는 뉴질랜드의 고향 인 뉴질랜드에이 작업을 수행 할 경우 기대할 수있는 오류의 수준을 보여 드리지만 넓은 범위의 위도에 적용됩니다.

Invercargill, New Zealand 
    Time zone: NZST 
    Sunrise today: 7:05 am 

Auckland, New Zealand 
    Time zone: NZST 
    Sunrise today: 6:34 am 

중국 (칠레, 아르헨티나 등)과 유사한 문제가 발생할 것으로 예상됩니다 (전체 국가는 하나의 시간대 임).

멋진 생각이지만, 실제로 작동하지 않을 수 있습니다.

0

모두의 답변을 읽은 후 주어진 물리적 주소에 대한 위도/경도 및 시간대를 반환하는 Google's Geocoding API을 사용한다고 생각합니다. 나는 API에서 정보를 검색하고 일출/일몰 시간을 계산하기 위해 사용자가 주소, 도시 또는 우편 번호를 입력 할 수있게하는 인터페이스를 추가해야합니다. 이것은 모든 정보를 데이터베이스에 로컬로 저장하는 것보다 낫습니다 (거대한 것입니다). 대답 한 모든 사람들에게 감사드립니다.

관련 문제