Android:How 根据当前位置获取时间或时区(geolocation/geocode)
Android:How to get time or timezone according to current location(geolocation/geocode)
我有一个地理代码(纬度、经度)。我的要求是根据此地理代码获取时间或获取时区,无论 android 设备的时间当时是否更改。
对这个要求有什么想法...
你可以使用 google api 通过传递纬度和经度
来获取时区
https://maps.googleapis.com/maps/api/timezone/json?location=38.908133,-77.047119×tamp=1458000000&key=YOUR_API_KEY
或者第二种方式是
Calendar calender = Calendar.getInstance();
TimeZone timeZone = calender.getTimeZone();
Log.d("Time zone","="+timeZone.getDisplayName());
Google 为其地图服务提供了一个非常好的库,其中包括地理代码查找。
我为您编写了一个简单的代码片段,但请参考地图库以查看您需要哪些 API 键。
https://github.com/googlemaps/google-maps-services-java
import com.google.maps.GeoApiContext;
import com.google.maps.GeocodingApi;
import com.google.maps.PlacesApi;
import com.google.maps.model.GeocodingResult;
import com.google.maps.model.PlaceDetails;
public class Maps {
private static String apiKey;
public Maps(String apikey) {
this.apiKey = apikey;
}
public String getTimezone(String address) throws Exception {
// The API will save the most matching result of your defined address in an array
GeocodingResult[] results = GeocodingApi.geocode(context, address).await();
// .geometry.location returns an LatLng object coressponding to your address;
//getTimeZone returns the timezone and it will be saved as a TimeZone object
TimeZone timeZone = TimeZoneApi.getTimeZone(context,results[0].geometry.location).await();
// returns the displayname of the timezone
return timeZone.getDisplayName();
}
}
public class Run {
public static void main(String[] args) throws Exception {
String apiKey = "YOURGOOGLEAPIKEY"
Maps m = new Maps(apiKey);
m.getTimezone("Amsterdam");
}
}
我有一个地理代码(纬度、经度)。我的要求是根据此地理代码获取时间或获取时区,无论 android 设备的时间当时是否更改。
对这个要求有什么想法...
你可以使用 google api 通过传递纬度和经度
来获取时区https://maps.googleapis.com/maps/api/timezone/json?location=38.908133,-77.047119×tamp=1458000000&key=YOUR_API_KEY
或者第二种方式是
Calendar calender = Calendar.getInstance();
TimeZone timeZone = calender.getTimeZone();
Log.d("Time zone","="+timeZone.getDisplayName());
Google 为其地图服务提供了一个非常好的库,其中包括地理代码查找。
我为您编写了一个简单的代码片段,但请参考地图库以查看您需要哪些 API 键。
https://github.com/googlemaps/google-maps-services-java
import com.google.maps.GeoApiContext;
import com.google.maps.GeocodingApi;
import com.google.maps.PlacesApi;
import com.google.maps.model.GeocodingResult;
import com.google.maps.model.PlaceDetails;
public class Maps {
private static String apiKey;
public Maps(String apikey) {
this.apiKey = apikey;
}
public String getTimezone(String address) throws Exception {
// The API will save the most matching result of your defined address in an array
GeocodingResult[] results = GeocodingApi.geocode(context, address).await();
// .geometry.location returns an LatLng object coressponding to your address;
//getTimeZone returns the timezone and it will be saved as a TimeZone object
TimeZone timeZone = TimeZoneApi.getTimeZone(context,results[0].geometry.location).await();
// returns the displayname of the timezone
return timeZone.getDisplayName();
}
}
public class Run {
public static void main(String[] args) throws Exception {
String apiKey = "YOURGOOGLEAPIKEY"
Maps m = new Maps(apiKey);
m.getTimezone("Amsterdam");
}
}