1

HeyGuysjsonファイルを解析した後に作成された4つの整数配列リストがあります。

            JSONObject o = new JSONObject(s);
    JSONObject c = new JSONObject(s);
    JSONArray a = o.getJSONArray("posts");
    o = a.getJSONObject(0);
    c = a.getJSONObject(1);
    lat.add((int) (o.getDouble("Latitude")* 1E6));
    lng.add((int) (o.getDouble("lontitude")* 1E6));
    lat1.add((int) (c.getDouble("Latitude")* 1E6));
    lon1.add((int) (c.getDouble("lontitude")* 1E6));

長期的には、これらのリストをループしてすべての経度と緯度の値を取得したいと思いますが、今のところ、最初の2つの値を取得しています。私の問題は、アプリケーションフォースが閉じて、地理コードを作成するときに何か問題があると思うことです。

            GeoPoint point = new GeoPoint( (int) lat.get(1), (int) lng.get(1));
    OverlayItem overlayitem = new OverlayItem(point, "", "");
    GeoPoint point1 = new GeoPoint((int) lat1.get(1), (int) lon1.get(1));
    OverlayItem overlayitem1 = new OverlayItem(point1, "", "");

誰かが私が間違っていることを知ることができれば、それは大きな助けになるでしょう

4

2 に答える 2

1
double latiude[] = null;
double longitude[] = null;
 JSONObject  json=JSONFunction.getJSONfromURL(Url);
 try{ 
    JSONArray  JArray = json.getJSONArray("results");  
      latitude = new double[jArray.length/size()];
      longitude = new double[jArray.length/size()];
      Log.v(TAG, "getting results"); 
    for(int i=0;i<JArray.length();i++)
     {
            JSONObject e = JArray.getJSONObject(i); 
            JSONObject location1=e.getJSONObject("geometry").getJSONObject("location");  
            latitude[i]=location1.getDouble("lat"); 
            longitude[i]=location1.getDouble("lng"); 
      }
于 2011-12-28T17:35:58.960 に答える
0

私は問題を見つけました、私は私の変数名を混同していました、私の側の愚かな間違い。私のソリューションでは、3つのベクトル、1つはジオポイントのベクトル、もう2つは他のベクトルを作成しました。1つは緯度用で、もう1つは緯度用です。

        o = new JSONObject(s);
        JSONArray a = o.getJSONArray("posts");
    int arrSize = a.length();
        points = new Vector <GeoPoint>();
    lat = new Vector<Integer>(a.length());
    lng = new Vector<Integer>(a.length());

    for (int i = 0; i < a.length(); i++) {

        o = a.getJSONObject(i);
        lat.add((int) (o.getDouble("Latitude")* 1E6));
        lng.add((int) (o.getDouble("lontitude")* 1E6)); 
        points.add(new GeoPoint( (int) lat.get(i), (int) lng.get(i)));
        overlayitem = new OverlayItem((GeoPoint) points.get(i), "", "");

        itemizedOverlay.addOverlay(overlayitem);

        mapOverlays.add(itemizedOverlay);

        MapController mapController = mapView.getController();

        mapController.animateTo((GeoPoint) points.get(i));
        mapController.setZoom(6);


    } 
于 2011-12-31T12:19:32.247 に答える