Java 地理编码代码不起作用-谷歌地图

Java 地理编码代码不起作用-谷歌地图,java,android,google-maps,maps,geocoding,Java,Android,Google Maps,Maps,Geocoding,我正在尝试使用地理编码来获取地址,计算出经度和纬度,然后在地图上显示覆盖图 我正在使用下面的代码,但是日志条目log.e(“find”和“+lat”);从不触发,我不知道为什么。有人能帮忙吗 谢谢 private void showpins() throws IOException { Geocoder gc = new Geocoder(this); String Address = "Oxford Street, London"; Log.e("Lat",""+

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

我正在使用下面的代码,但是日志条目log.e(“find”和“+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);

    }

        }
private void showpins()引发IOException{
地理编码器gc=新地理编码器(本);
字符串地址=“伦敦牛津街”;
Log.e(“Lat”和“+地址);
List foundAddresses=gc.getFromLocationName(地址,5);//搜索地址
int lat;
int-lon;
对于(int i=0;i
您的地址不在谷歌地图地址数据库中,或者您的应用程序没有internet访问权限

  • 检查地址是否已找到

  • 您的应用程序具有internet访问权限。您必须在ypur应用程序清单中包含以下内容:

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

  • 在某些emulator API级别中,这肯定存在问题。看见例如,API级别8将不起作用。我发现如果您调用该方法两次,API级别7就可以了。我不知道真实设备上的行为。我不认为谷歌能保证这项服务永远可用。

    Urg-真让人痛苦-想知道是否还有其他替代方案,以及它是否能在真正的设备上运行。有一个JSON解决方案,请参阅链接中的注释21。不过我还没试过。