Java 根据城市、邮政编码或街道名称获取纬度和经度

Java 根据城市、邮政编码或街道名称获取纬度和经度,java,android,android-emulator,android-widget,Java,Android,Android Emulator,Android Widget,在我当前的android应用程序中,我希望根据输入的城市名称、街道名称或邮政编码获取地理坐标。我怎样才能做到这一点 致以最良好的祝愿, 罗尼检查一下这个方法 像这样使用它: List<Address> addressList = geoCoder.getFromLocationName(cityName, 1); Address address = addressList.get(0); if(address.hasLatitude() && address.hasL

在我当前的android应用程序中,我希望根据输入的城市名称、街道名称或邮政编码获取地理坐标。我怎样才能做到这一点

致以最良好的祝愿, 罗尼

检查一下这个方法

像这样使用它:

List<Address> addressList = geoCoder.getFromLocationName(cityName, 1);
Address address = addressList.get(0);
if(address.hasLatitude() && address.hasLongitude()){
    double selectedLat = address.getLatitude();
    double selectedLng = address.getLongitude();
}
List addressList=geoCoder.getFromLocationName(cityName,1);
地址=地址列表。获取(0);
if(address.hasLatitude()&&address.hasLatitude()){
双击lat=address.getLatitude();
双击lng=address.getLongitude();
}

您好,请尝试以下代码从给定地址获取地理编码点

List<Address> foundGeocode = null;
/* find the addresses  by using getFromLocationName() method with the given address*/
foundGeocode = new Geocoder(this).getFromLocationName("address here", 1);
 foundGeocode.get(0).getLatitude(); //getting latitude
 foundGeocode.get(0).getLongitude();//getting longitude
List foundGeocode=null;
/*使用给定地址的getFromLocationName()方法查找地址*/
foundGeocode=新地理编码器(this).getFromLocationName(“此处地址”,1);
get(0.getLatitude()//获得自由
getgeocode.get(0.getLongitude()//获得经度

有一个非常好的网站叫做 世界地名录,其中包含您需要的数据 需要,在一个整洁、可下载的文件中(通过 城市名称)

在主页上,单击链接 也就是说:

其他统计数字……各种 统计:表格、地图和 可下载数据

在弹出的页面中,单击 在链接上显示:

popdata(1.4 MB)

解压文件,你就知道了

该数据库是免费的主数据库 包括 纬度、经度和人口 数据……等等

从以下位置获取此信息:

试试这个

Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
try {
    List<Address> addresses = geoCoder.getFromLocation(latitude , longitude, 1);

    String strCompleteAddress= "";
    //if (addresses.size() > 0)
    //{
        for (int i=0; i<addresses.get(0).getMaxAddressLineIndex();i++)
            strCompleteAddress+= addresses.get(0).getAddressLine(i) + "\n";
    // }
    Log.i("MyLocTAG => ", strCompleteAddress);
    Toast.makeText(getBaseContext(), strCompleteAddress, Toast.LENGTH_LONG).show();
}
catch (IOException e) {
    Log.i("MyLocTAG => ", "this is the exception part");
    e.printStackTrace();
}
Geocoder-Geocoder=new-Geocoder(getBaseContext(),Locale.getDefault());
试一试{
列表地址=geoCoder.getFromLocation(纬度,经度,1);
字符串strCompleteAddress=“”;
//如果(地址.size()>0)
//{

对于(int i=0;i根据其他答案,我认为
Geocoder
可能是更好的解决方案,而不是下载位置和坐标数据库。