【问题标题】:Error retrieving Google Maps location from JSON从 JSON 检索 Google 地图位置时出错
【发布时间】:2014-10-09 14:10:03
【问题描述】:

我有一个显示从 JSON 文档中检索到的 POI 列表的活动。当我点击一个列表元素时,它会打开谷歌地图应用程序并在地图上显示相对点。

这适用于模拟器,但不适用于物理设备,因为它会查找像 xx,xxxxxxx 而不是 xx.xxxxxxx 的坐标:返回“未找到结果”错误。

请注意,设备的 UI 语言是意大利语。

这是 JSON 的示例:

[
        {
        "id": "1",
        "latitude": "48.8586006",
        "longitude": "2.2939799",
        "city": "Paris",
        "description": "Tour Eiffel"
    }
]

这是来自 MyActivity 的 sn-p:

try {
                        JSONArray jarray = new JSONArray(loadJSON());
                        JSONObject jobject = jarray.getJSONObject(0);
                        String urlAddress = "http://maps.google.com/maps?q="+ jobject.getString("latitude")  +"," + jobject.getString("longitude") +"("+ jobject.getString("description") + " - " + jobject.getString("city") + ")&iwloc=A&hl=it";
                        Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(urlAddress));
                        intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
                        startActivity(intent);
                        break;
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

【问题讨论】:

    标签: android json google-maps


    【解决方案1】:

    非常奇怪的情况,正在加载你的 json:

    private String loadJSON(){
        return "[{\"id\": \"1\","+ 
                "\"latitude\": \"48.8586006\","+
                "\"longitude\": \"2.2939799\","+
                "\"city\": \"Paris\","+
                "\"description\": \"Tour Eiffel\""+
                "}];";
    }
    

    用方法:

    private void loadGoogleMap(){
        try {
            JSONArray jarray = new JSONArray(loadJSON());
            JSONObject jobject = jarray.getJSONObject(0);
            String urlAddress = "http://maps.google.com/maps?q="+ jobject.getString("latitude")  +"," + jobject.getString("longitude") +"("+ jobject.getString("description") + " - " + jobject.getString("city") + ")&iwloc=A&hl=it";
            Log.e(TAG, "urlAddress : " + urlAddress);
            Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(urlAddress));
            intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
            startActivity(intent);
    
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    

    将此网址加载到 Google 地图中:

    http://maps.google.com/maps?q=48.8586006,2.2939799(Tour埃菲尔-巴黎)&iwloc=A&hl=it

    我认为这一定是缓存的问题,尝试清除谷歌地图缓存!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 2015-01-14
      相关资源
      最近更新 更多