5

所以我制作了一个访问用户位置的应用程序,然后使用地理编码器解释(反向地理编码)它,如下所示:

Geocoder gc = new Geocoder(ctx, Locale.getDefault());
List<Address> addresses = gc.getFromLocation(latitude, longitude, maxResults); 
Address address = addresses.get(0);
town = address.getLocality();
countryCd = address.getCountryCode();

但是,我发现地理编码器服务在 IOException 和服务不可用时非常不可靠。

我已经阅读了涉及向 Geocoder 服务发送垃圾邮件直到给出结果的解决方案,而其他人则说该服务每 15 秒只允许每个 IP 地址命中一次。

有时重新启动我的设备会使该服务再次可用。

这个主题是否有其他 API 或方法?

4

3 回答 3

0

那里有一个解决方案: android question to get latitude & longitude from a given address

顺便提一下,您可以使用 Google Maps 的基于 REST 的反向地理编码器。您可能可以将其用作后备。由于您也将在您的应用程序中使用 Google 地图,因此您应该熟悉 API 规则。

于 2011-07-13T12:22:21.743 回答
-1
public void getAddress(double lat, double lng) {
    Geocoder geocoder = new Geocoder(this, Locale.getDefault());
    try {
        List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
        Address obj = addresses.get(0);
        String add = obj.getAddressLine(0);
        GUIStatics.currentAddress = obj.getSubAdminArea() + ","
                + obj.getAdminArea();
        GUIStatics.latitude = obj.getLatitude();
        GUIStatics.longitude = obj.getLongitude();
        GUIStatics.currentCity= obj.getSubAdminArea();
        GUIStatics.currentState= obj.getAdminArea();
        add = add + "\n" + obj.getCountryName();
        add = add + "\n" + obj.getCountryCode();
        add = add + "\n" + obj.getAdminArea();
        add = add + "\n" + obj.getPostalCode();
        add = add + "\n" + obj.getSubAdminArea();
        add = add + "\n" + obj.getLocality();
        add = add + "\n" + obj.getSubThoroughfare();

        Log.v("IGA", "Address" + add);
        // Toast.makeText(this, "Address=>" + add,
        // Toast.LENGTH_SHORT).show();

        // TennisAppActivity.showDialog(add);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
    }
}

使用它可能会对您有所帮助。

于 2011-06-29T10:08:07.280 回答
-1

由于您的实施,您可能会收到 IOException 和 ServiceUnavailble 。

阅读此最佳实践:http ://android-developers.blogspot.com/2011/06/deep-dive-into-location.html

(它比 API 更好)和开源!

于 2011-06-29T10:10:04.803 回答