2014-10-09 44 views
0

我有一个活动,显示从JSON文档中检索到的POI列表。当我点击一个列表元素时,它会打开Goog​​le地图应用程序并显示地图上的相对点。从JSON中检索Google地图位置时出错

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

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

这是JSON的一个样本:

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

,这是从MyActivity片断:

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(); 
        } 

回答

0

非常怪异的情况下,加载你的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(); 
    } 
} 

加载此网址到谷歌地图:

http://maps.google.com/maps?q=48.8586006,2.2939799(Tour Eiffel - 巴黎)& iwloc = A & HL =它

我认为它必须与缓存相关的问题,请尝试清除谷歌地图缓存!