2016-04-14 16 views
0

JSON'un koordinatlarını ayrıştırmak ve her iki değeri de (lat, lng) bir "object" içine kaydetmek istiyorum. Bundan sonra, Google Haritalar Etkinliğimdeki ilk 10 nesneyi harita üzerinde görüntülemek istiyorum.Tek bir nesnedeki koordinatlara ihtiyacınız var

Benim MainActivity

List<JSONModels> jsonModelsList = new ArrayList<>(); 

      try { 
       JSONObject jsonObject = new JSONObject(buffer.toString()); 
       JSONArray placemarks = jsonObject.getJSONArray("placemarks"); 

       for (int i = 0; i < placemarks.length(); i++) { 
        JSONObject jsonPart = placemarks.getJSONObject(i); 
        JSONModels jsonModels = new JSONModels(); 
        jsonModels.setName(jsonPart.getString("name")); 
        jsonModels.setAddress(jsonPart.getString("address")); 
        jsonModels.setExterior(jsonPart.getString("exterior")); 
        jsonModels.setInterior(jsonPart.getString("interior")); 
        jsonModels.setFuel(jsonPart.getInt("fuel")); 

        for (int j = 0; j <= 10; j++) { 
         JSONObject marker = placemarks.getJSONObject(j); 
         JSONArray coordinates = marker.optJSONArray("coordinates"); 

         double lat = coordinates.optDouble(0); 
         double lng = coordinates.optDouble(1); 

        } 

        jsonModelsList.add(jsonModels); 

       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      return jsonModelsList; 

cevap

1

Jade, Uzun birlikte, lat kurtarmak için birçok yol var ama en basit yolu işaretleyici nesnelerin listesini oluşturmak için, bu yüzden kolay haritadaki işaretleme listesini kullanabilirsiniz.

try { 
    List<LatLng> LatlongList = new ArrayList<LatLng>(); 
     JSONObject jsonObject = new JSONObject(buffer.toString()); 
     JSONArray placemarks = jsonObject.getJSONArray("placemarks"); 

     for (int i = 0; i < placemarks.length(); i++) { 
      JSONObject jsonPart = placemarks.getJSONObject(i); 
      JSONModels jsonModels = new JSONModels(); 
      jsonModels.setName(jsonPart.getString("name")); 
      jsonModels.setAddress(jsonPart.getString("address")); 
      jsonModels.setExterior(jsonPart.getString("exterior")); 
      jsonModels.setInterior(jsonPart.getString("interior")); 
      jsonModels.setFuel(jsonPart.getInt("fuel")); 

      for (int j = 0; j <= 10; j++) { 
       JSONObject marker = placemarks.getJSONObject(j); 
       JSONArray coordinates = marker.optJSONArray("coordinates"); 
       double lat = coordinates.optDouble(0); 
       double lng = coordinates.optDouble(1); 
    //add lat long object in list of LatlongList. 
     LatlongList.add(new LatLng(lat,lng)); 
      } 
    } 
`  //LatlongList is the list where the all lat and longs a together. 

    LatlongList.size(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return LatlongList; 
+0

Bu kolay cümle, aradığım şey ... teşekkür ederim. Haritadaki sonuçları görüntülemek için googlemaps etkinliğimde Array'ı Lng ve Lat'le kullanabilir miyim? – Jade

İlgili konular