【发布时间】:2015-11-19 15:43:30
【问题描述】:
我正在开发一个应用程序,该应用程序需要从获得的 GPS 坐标中获取城市和街道名称,我已经尝试过地理编码器,但它只在互联网上工作。但即使我没有互联网连接,我也想获得位置名称或城市名称。我无法解决问题 下面是我正在使用的代码
if (gps.canGetLocation()) {
latitude = gps.getLatitude();
longitude = gps.getLongitude();
Toast.makeText(
getApplicationContext(),
"Lat = " + String.valueOf(latitude) + "\nLong : "
+ String.valueOf(longitude),
Toast.LENGTH_LONG).show();
Geocoder geocoder = new Geocoder(MainActivity.this, Locale
.getDefault());
try {
addresses = geocoder.getFromLocation(latitude,
longitude, 1);
} catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
if (addresses.size() > 0) {
String cityName = addresses.get(0).getAddressLine(0);
String stateName = addresses.get(0).getAddressLine(1);
String countryName = addresses.get(0).getAddressLine(2);
Toast.makeText(
getApplicationContext(),
"Area = " + cityName + "\nCity = " + stateName
+ "\nCountry Name = " + countryName,
Toast.LENGTH_LONG).show();
}
//
if (latitude > 0 && longitude > 0) {
String[] a = { load("C1.txt"), load("C2.txt"),
load("C2.txt") };
for (int j = 0; j < a.length; j++) {
if (a[j].length() > 10) {
SmsManager sms = SmsManager.getDefault();
/*
* sms.sendTextMessage(a[j], null, "Area = " +
* cityName + "\nCity = " + stateName +
* "\nCountry Name = " + countryName, null,
* null);
*/
sms.sendTextMessage(
a[j],
null,
"Lat = " + String.valueOf(latitude)
+ "\nLong : "
+ String.valueOf(longitude),
null, null);
}
}
} else {
Toast.makeText(getApplicationContext(),
"Please enter phone numbers from settings",
Toast.LENGTH_LONG).show();
}
【问题讨论】:
-
感谢链接,但我需要位置名称。它返回我也可以从 gps 获得的 lat n longs
-
我需要当前城市街道地址的名称等 .. 比如地理编码器
-
在没有互联网的情况下,您希望它如何工作。你打算用你的应用程序为全世界提供一个巨大的静态数据库吗?什么样的分辨率是可以接受的?
-
是的,这就是问题所在......所以它不能离线完成......谢谢:)
标签: android gps geolocation location latitude-longitude