android谷歌地图得到纬度和经度问题

时间:2013-04-22 06:41:45

标签: android google-maps

我创建了示例应用程序我想从字符串地址行获取纬度和经度。这是我用来获得纬度和经度的方法

private void getFromLocation(String address) {
    Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
    try {
        List<Address> addresses = geoCoder.getFromLocationName(address, 1);

        if (addresses.size() > 0) {
            GeoPoint p = new GeoPoint(
                    (int) (addresses.get(0).getLatitude() * 1E6),
                    (int) (addresses.get(0).getLongitude() * 1E6));

            latitude = p.getLatitudeE6() / 1E6;
            longtitude = p.getLongitudeE6() / 1E6;
            HAMBURG = new LatLng(latitude, longtitude);
            Log.d("latitide", "" + latitude);
            Log.d("longtitude", "" + longtitude);

        } else {
            Log.d("Addess", "Address not found");
        }
    } catch (Exception ee) {
        Log.d("ex", ee.toString());
    }
}

private void getFromLocation(String address) { Geocoder geoCoder = new Geocoder(this, Locale.getDefault()); try { List<Address> addresses = geoCoder.getFromLocationName(address, 1); if (addresses.size() > 0) { GeoPoint p = new GeoPoint( (int) (addresses.get(0).getLatitude() * 1E6), (int) (addresses.get(0).getLongitude() * 1E6)); latitude = p.getLatitudeE6() / 1E6; longtitude = p.getLongitudeE6() / 1E6; HAMBURG = new LatLng(latitude, longtitude); Log.d("latitide", "" + latitude); Log.d("longtitude", "" + longtitude); } else { Log.d("Addess", "Address not found"); } } catch (Exception ee) { Log.d("ex", ee.toString()); } } 此方法抛出异常“ “。我犯了什么错误?还有其他解决方案可以获得纬度和经度吗?

2 个答案:

答案 0 :(得分:0)

IOException可能表示远程请求因某些相对较低级别的原因而失败;

<强> IOException: if the network is unavailable or any other I/O problem occurs


public List<Address> getFromLocationName (String locationName, int maxResults)

在API级别1中添加 返回已知用于描述命名位置的地址数组,该地址可以是诸如“Dalvik,Iceland”的地名,诸如“1600 Amphitheatre Parkway,Mountain View,CA”的地址,诸如“SFO”的机场代码“等等。返回的地址将针对提供给该类构造函数的语言环境进行本地化。

查询将阻止并返回值将通过网络查找获得。结果是最佳猜测,并不保证有意义或正确。从与主UI线程分开的线程调用此方法可能很有用。

参数

locationName:用户提供的位置描述

maxResults:要返回的最大结果数。建议使用较小的数字(1到5)

返回:

地址对象列表。如果未找到匹配项或没有可用的后端服务,则返回null或空列表。

抛出

IllegalArgumentException:如果locationName为null

IOException:如果网络不可用或出现任何其他I / O问题


所以,做

请尽量避免在一分钟内收到几次点击。 在不同的设备上运行此代码。

有关详细信息,请查看此artical

答案 1 :(得分:0)

     List<Address> foundGeocode = null;
   /* find the addresses  by using getFromLocationName() method with the given address*/
   try {
    foundGeocode = new Geocoder(MainActivity.this).getFromLocationName("Your location",1);
     Double s=foundGeocode.get(0).getLatitude(); //getting latitude
       Double n=foundGeocode.get(0).getLongitude();
        } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
        }