2017-10-17 43 views
0

任何人都可以解释如何在Android的谷歌地图上显示多个标记使用以下JSON代码?如何在地图上显示多个标记

[ 
{"id":"1","lat":"18.105917","lng":"78.838325","location":" Laxmi Filling Station(Medak Road)","distance":"0"}, 
{"id":"3","lat":"18.105952","lng":"78.840366","location":"Fathima Filling Station (Medak Road)","distance":"0.1340667689594937"}, 
{"id":"13","lat":"18.093713","lng":"78.843775","location":"Thirumala Thirupathi Filling Station (Ensanpally Road)","distance":"0.9160924683870764"}, 
{"id":"12","lat":"18.101497","lng":"78.852353","location":"MS Balaji Filling Station (Old Busstand)","distance":"0.9706182480093937"} 
] 

所有的错误都解决仍然标记的没有显示在地图上

private void createMarkersFromJson(String json) throws JSONException { 

// De-serialize the JSON string into an array of city objects 
JSONArray jsonArray = new JSONArray(json); 
for (int i = 0; i < jsonArray.length(); i++) { 
    // Create a marker for each city in the JSON data. 
    JSONObject jsonObj = jsonArray.getJSONObject(i); 
    String location=jsonObj.getString("location"); 
    double lat=jsonObj.getDouble("lat"); 
    double lng=jsonObj.getDouble("lng"); 
    String id=jsonObj.getString("id"); 
    Log.e("detailes", lat+" "+lng+" "+location); 
    map.addMarker(new MarkerOptions() 
      .title(location) 
      .snippet(id) 
      .position(new LatLng(lat, lng)) 
    ); 
} 
} 
+1

什么你试过到目前为止并编码没有为你工作? –

+0

json数组不匹配异常是我得到的错误 –

+0

我认为你犯了一个错误,以得到经纬度数组。检查jsonObj.getJSONArray(“latlng”)和jsonObj.getJSONArray(“latlng”)。 –

回答

0

人口关键是不存在的JSON字符串

private void createMarkersFromJson(String json) throws JSONException { 
// De-serialize the JSON string into an array of city objects 
     JSONArray jsonArray = new JSONArray(json); 
     for (int i = 0; i < jsonArray.length(); i++) { 
// Create a marker for each city in the JSON data. 
      JSONObject jsonObj = jsonArray.getJSONObject(i); 
      map.addMarker(new MarkerOptions() 
        .title(jsonObj.getString("name")) 
        .snippet(jsonObj.getString("location")) 
        .position(new LatLng(
          jsonObj.getDouble("lat"), 
          jsonObj.getDouble("lng") 
        )) 
      ); 
     } 
    } 
+0

替换人口与位置,现在这将工作正常 –

+0

我已更改代码,所有错误已解决仍然标记不显示在地图上 –

+0

只有当您的地图准备就绪后,检查您是否调用了此方法createMarkersFromJson()@RaghavaManchala –

1

请按照这种方式更改您的代码。

for(int i=0;i<jsonArray.length();i++) 
    { 
     JSONObject jsonObject=jsonArray.getJSONObject(i); 
     String _id =jsonObject.getString("id"); 
     String _lat =jsonObject.getString("lat"); 
     String _lng =jsonObject.getString("lng"); 

    map.addMarker(new MarkerOptions() 
    .title(jsonObject.getString("name")) 
    .snippet(Integer.toString(jsonObject.getString("distance"))) 
    .position(new LatLng(_lat,_lng)); // If problem then convert String to double. Use getDouble() instead of getString() 

    } 
+1

我已更改代码,所有错误均已解决仍然标记未显示在地图上 –

+0

http://hasmukhbhadani.blogspot.in/2015/08/display-multiple-markers -map-zoom-level.html –

+1

非常感谢你为此.. 这可以帮助我很多..... IntelliJ Amiya –