Android根据地址获取经纬度,根据经纬度
2017-04-05 12:02
555 查看
获取经纬度
public Address getGeoPointBystr(String str) {
Address address_temp = null;
if (str != null) {
Geocoder gc = new Geocoder(RoutePlanDemo.this, Locale.CHINA);
List<Address> addressList = null;
try {
addressList = gc.getFromLocationName(str, 1);
if (!addressList.isEmpty()) {
address_temp = addressList.get(0);
// 计算经纬度
double Latitude = address_temp.getLatitude();
double Longitude = address_temp.getLongitude();
System.out.println("经度:" + Latitude);
System.out.println("纬度:" + Longitude);
// 生产GeoPoint
}
} catch (IOException e) {
e.printStackTrace();
}
}
return address_temp;
}
计算距离
public static double getDistance(double longitude1, double latitude1,
double longitude2, double latitude2) {
double Lat1 = rad(latitude1);
double Lat2 = rad(latitude2);
double a = Lat1 - Lat2;
double b = rad(longitude1) - rad(longitude2);
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
+ Math.cos(Lat1) * Math.cos(Lat2)
* Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 10000) / 10000;
return s;
}
private static double rad(double d) {
return d * Math.PI / 180.0;
}
Main 调用
Address add1 = getGeoPointBystr("北京市丰台区科兴路7号");
Address add2 = getGeoPointBystr("北京市天安门");
double d=getDistance(add1.getLongitude(), add1.getLatitude(),
add2.getLongitude(), add2.getLatitude());
System.out.println("多少米 : " +d);
public Address getGeoPointBystr(String str) {
Address address_temp = null;
if (str != null) {
Geocoder gc = new Geocoder(RoutePlanDemo.this, Locale.CHINA);
List<Address> addressList = null;
try {
addressList = gc.getFromLocationName(str, 1);
if (!addressList.isEmpty()) {
address_temp = addressList.get(0);
// 计算经纬度
double Latitude = address_temp.getLatitude();
double Longitude = address_temp.getLongitude();
System.out.println("经度:" + Latitude);
System.out.println("纬度:" + Longitude);
// 生产GeoPoint
}
} catch (IOException e) {
e.printStackTrace();
}
}
return address_temp;
}
计算距离
public static double getDistance(double longitude1, double latitude1,
double longitude2, double latitude2) {
double Lat1 = rad(latitude1);
double Lat2 = rad(latitude2);
double a = Lat1 - Lat2;
double b = rad(longitude1) - rad(longitude2);
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
+ Math.cos(Lat1) * Math.cos(Lat2)
* Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 10000) / 10000;
return s;
}
private static double rad(double d) {
return d * Math.PI / 180.0;
}
Main 调用
Address add1 = getGeoPointBystr("北京市丰台区科兴路7号");
Address add2 = getGeoPointBystr("北京市天安门");
double d=getDistance(add1.getLongitude(), add1.getLatitude(),
add2.getLongitude(), add2.getLatitude());
System.out.println("多少米 : " +d);
相关文章推荐
- Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法
- Android根据经纬度获取地址,眼前一亮
- Android根据经纬度获取地址
- android 根据地址获取经纬度
- java 根据经纬度获取百度地图地址
- 百度地图API之根据经纬度查询地址信息(Android)
- 求助!!!百度地图api可以根据地址获取到经纬度吗
- Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等
- google map根据地址获取经纬度
- 根据地址获取经纬度
- [010] 百度地图API之根据经纬度查询地址信息(Android) .
- 百度地图之根据经纬度信息获取地址方法
- 根据经纬度获取当前地址
- 获取当前经纬度并根据经纬度反编译城市地址
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- android 根据网络来获取外网ip地址及国家,地区的接口
- 百度地图 根据地址获取经纬度
- java google 地图 根据经纬度 获取地址
- 根据省份等地址获取经纬度,或根据经纬度获取地址信息
- android根据基站信息获取经纬度