Android Geocoder找不到地址,谷歌地图可以找到

用户名

在这里https://www.google.com.tr/maps/place/Akbank+Sanat+Beyo%C4%9Flu/@41.0356243,28.9803398,17z/data=!3m1!4b1!4m2!3m1!1s0x14cab7643e33e919:0xad542d45132fe9ce? hl = en

当我点击搜索时可以找到

Akbank Sanat istanbul

但是当我使用此代码时,它找不到:

  private LatLng getCoors(String loc, String desc){
    Log.v(TAG, "getCoors ");
    loc = loc +" Istanbul";

    if (Geocoder.isPresent()) {
        Log.v(TAG, "getCoors geocoder present");
        geocoder = new Geocoder(mContext, Locale.getDefault());
       Log.v(TAG, "location: "+loc);

        try {
            From_geocode = geocoder.getFromLocationName(loc, 1);
            Log.v(TAG, "fromgeocode: "+From_geocode);
        } catch (IOException e) {
            e.printStackTrace();
            Log.v(TAG, "catched error - from geocode");//need to do something
        }

        if (!From_geocode.isEmpty()) {
            Log.v(TAG, " getcoors fromgeocod enot not empty  ");
            coors = new LatLng(From_geocode.get(0).getLatitude(), From_geocode.get(0).getLongitude());


            Log.v(TAG, "LATITUTE=====" + coors.latitude + "   LONGITUTE=====" + coors.longitude);
            return coors;
        }//second if end
        else{
            Log.v(TAG, " hata getcoors fromgeocode empty  ");
        }
    }//first if end
    else{
        Log.v(TAG, " hata getcoors geocoder not preset  ");
    }
    return null;
}//getcoors end

当我使用相同的地址时

else{
            Log.v(TAG, " hata getcoors fromgeocode empty  ");
        }

它在这里。所以,这意味着它无法获取googlemaps可以获取的地址。

我究竟做错了什么?有没有不使用json甚至不连接的简单方法吗?

肖恩·达菲(Shane Duffy)

显然,地理编码器在一次运行中无法准确计算位置。尝试反复询问该位置5-10次,直到收到响应。

或者,为了更准确地从字符串中获取地址,请尝试实现以下方法:

public JSONObject getLocationInfo() {

        HttpGet httpGet = new HttpGet("http://maps.google.com/maps/api/geocode/json?latlng="+lat+","+lng+"&sensor=true");
        HttpClient client = new DefaultHttpClient();
        HttpResponse response;
        StringBuilder stringBuilder = new StringBuilder();

        try {
            response = client.execute(httpGet);
            HttpEntity entity = response.getEntity();
            InputStream stream = entity.getContent();
            int b;
            while ((b = stream.read()) != -1) {
                stringBuilder.append((char) b);
            }
        } catch (ClientProtocolException e) {
            } catch (IOException e) {
        }

        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject = new JSONObject(stringBuilder.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return jsonObject;
    }

并这样调用它:

JSONObject ret = getLocationInfo(); 
JSONObject location;
String location_string;
try {
    location = ret.getJSONArray("results").getJSONObject(0);
    location_string = location.getString("formatted_address");
    Log.d("test", "formattted address:" + location_string);
} catch (JSONException e1) {
    e1.printStackTrace();

}

这段代码来自Shobhit Puri,原始问题可以在这里找到

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android:在谷歌表单android中找不到元素ID/名称

来自分类Dev

未找到 setOnCameraIdleListener android 谷歌地图集群

来自分类Dev

谷歌地图与Android

来自分类Dev

是否可以从Android谷歌地图中删除默认的兴趣点

来自分类Dev

Android抽屉和谷歌地图

来自分类Dev

在Android中打开谷歌地图

来自分类Dev

Android 中的谷歌地图空白

来自分类Dev

找不到android facet

来自分类Dev

找不到活动android

来自分类Dev

找不到android facet

来自分类Dev

Android:找不到装置

来自分类Dev

找不到android命令

来自分类Dev

找不到活动android

来自分类Dev

Android Studio找不到opencv模块,但是可以编译

来自分类Dev

谷歌地图放大和缩小android

来自分类Dev

谷歌地图未显示在android appication中

来自分类Dev

android eclipse创建谷歌地图时出错

来自分类Dev

谷歌地图Android中的GeoJson中心

来自分类Dev

创建行程谷歌地图的android

来自分类Dev

谷歌地图未显示标记Android

来自分类Dev

谷歌地图自定义标记android

来自分类Dev

如何删除android谷歌地图中的蓝点?

来自分类Dev

在Android清单中找不到Android活动

来自分类Dev

Android 项目显示找不到 `android` 模块

来自分类常见问题

找不到android SDK(Unity)

来自分类Dev

Android Studio找不到Aapt

来自分类Dev

Android Studio找不到文件

来自分类Dev

SQLite Android:找不到表

来自分类Dev

亚行找不到Android设备