地理编码不工作 - Google地图

时间:2011-09-10 12:01:36

标签: java android google-maps maps geocoding

我正在尝试使用地理编码来获取地址,计算出经度和纬度,然后在地图上显示叠加层。

我使用下面的代码,但日志条目Log.e(“Found”,“”+ lat);永远不会触发,我不知道为什么。有人可以帮忙吗?

谢谢!

private void showpins() throws IOException {

    Geocoder gc = new Geocoder(this);

    String Address = "Oxford Street, London";

    Log.e("Lat",""+Address);

        List<Address> foundAdresses = gc.getFromLocationName(Address, 5); //Search addresses

        int lat;
        int lon;

        for (int i = 0; i < foundAdresses.size(); ++i) {

            Address x = foundAdresses.get(i);
            lat = (int) x.getLatitude();
            lon = (int) x.getLongitude();

            Log.e("Found",""+lat);

    List<Overlay> mapOverlays = mapView.getOverlays();
    Drawable drawable = this.getResources().getDrawable(R.drawable.pushpin);
    CustomizedItemOverlay itemizedOverlay = 
    new CustomizedItemOverlay(drawable, this);

    GeoPoint point = new GeoPoint(lat, lon);
    OverlayItem overlayitem = 
         new OverlayItem(point, "Hello", "Location");

    itemizedOverlay.addOverlay(overlayitem);
    mapOverlays.add(itemizedOverlay);

    }

        }

2 个答案:

答案 0 :(得分:1)

您的地址不在Google地图地址数据库中,或者您的应用没有互联网访问权限。

  1. 检入http://maps.google.com确实找到了地址。

  2. 该应用程序具有互联网访问权限。你必须在ypur应用程序清单中有这个:

    <uses-permission android:name="android.permission.INTERNET" />
    

答案 1 :(得分:1)

在某些模拟器API级别中存在明确的问题。见Issue 8816: service not available。例如,API级别8将不起作用。如果您调用该方法两次,我发现API级别7是正常的。我不知道真实设备上的行为。我认为Google不保证该服务始终可用。