2013-02-25 39 views
0

我可以成功地將我的位置傳遞到使用php和android java的Web服務。但事情是我的經度和緯度都是999.99999和-999.99999。你能指出我在哪些方面有錯誤嗎?從android傳遞到web的位置總是獲得999.9999

這是我的代碼:

**

public class LocationGetter extends MapActivity implements LocationListener { // <1> 
    private static final String TAG = "LocationActivity"; 
    LocationManager locationManager; // <2> 
    Geocoder geocoder; // <3> 
    TextView locationText; 
    MapView map; 
    MapController mapController; // <4> 
    // ** This declarations was for passing of data to web service 
    // Progress Dialog 
    private ProgressDialog pDialog; 
    // JSONParser Object creation 
    JSONParser jsonParser = new JSONParser(); 
    // url to pass location to web 
    // private static String url_create_product = 
    // "http://student-thesis.netii.net/location_adding.php"; 
    private static String url_create_product = "http://10.0.2.2/TheCalling/location_adding.php"; 
    // JSON Node names 
    private static final String TAG_SUCCESS = "success"; 
    //Latitude and Longitude 
    private static String ILatitude; 
    private static String ILongitude; 
    // ** End 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.maps); 
     locationText = (TextView) this.findViewById(R.id.lblLocationInfo); 
     map = (MapView) this.findViewById(R.id.mapview); 
     map.setBuiltInZoomControls(true); 
     mapController = map.getController(); // <4> 
     mapController.setZoom(19); 
     locationManager = (LocationManager) this 
       .getSystemService(LOCATION_SERVICE); // <2> 
     geocoder = new Geocoder(this); // <3> 
     Location location = locationManager 
       .getLastKnownLocation(LocationManager.GPS_PROVIDER); // <5> 
     if (location != null) { 
      Log.d(TAG, location.toString()); 
      this.onLocationChanged(location); // <6> 
     } 
    } 
    @Override 
    protected void onResume() { 
     super.onResume(); 
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
       60000, 5, this); // <7> 
    } 
    @Override 
    protected void onPause() { 
     super.onPause(); 
     locationManager.removeUpdates(this); // <8> 
    } 
    @Override 
    public void onLocationChanged(Location location) { // <9> 
     Log.d(TAG, "onLocationChanged with location " + location.toString()); 
     String text = String.format(
       "Lat:\t %f\nLong:\t %f\nAlt:\t %f\nBearing:\t %f \n", 
       location.getLatitude(), location.getLongitude(), 
       location.getAltitude(), location.getBearing()); 
     this.locationText.setText(text); 
     try { 
      List<Address> addresses = geocoder.getFromLocation(
        location.getLatitude(), location.getLongitude(), 10); // <10> 
      for (Address address : addresses) { 
       this.locationText.append(" " + address.getAddressLine(0)); 
      } 
      int latitude = (int) (location.getLatitude() * 1000000); 
      int longitude = (int) (location.getLongitude() * 1000000); 

      GeoPoint point = new GeoPoint(latitude, longitude); 
      mapController.animateTo(point); // <11> 
      List<Overlay> mapOverlays = map.getOverlays(); 
      Drawable drawable = this.getResources().getDrawable(
        R.drawable.reddot); 
      AddItemizedOverlay itemizedOverlay = new AddItemizedOverlay(
        drawable, this); 
      OverlayItem overlayitem = new OverlayItem(point, "Hello", 
        "Sample Overlay item"); 
      itemizedOverlay.addOverlay(overlayitem); 
      mapOverlays.add(itemizedOverlay); 

      ILatitude = Integer.toString(latitude); 
      ILongitude = Integer.toString(longitude); 
      new phpconnect().execute(); 

     } catch (IOException e) { 
      Log.e("LocateMe", "Could not get Geocoder data", e); 
     } 
    } 
    @Override 
    public void onProviderDisabled(String provider) { 
     // TODO Auto-generated method stub 
    } 
    @Override 
    public void onProviderEnabled(String provider) { 
     // TODO Auto-generated method stub 
    } 
    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
     // TODO Auto-generated method stub 
    } 
    @Override 
    protected boolean isRouteDisplayed() { 
     // TODO Auto-generated method stub 
     return false; 
    } 
    class phpconnect extends AsyncTask<String, String, String> { 
     @Override 
     protected String doInBackground(String... args) { 
      String strLatitude = ILatitude; 
      String strLongitude = ILongitude; 
      // Building parameters 
      List<NameValuePair> params1 = new ArrayList<NameValuePair>(); 
      params1.add(new BasicNameValuePair("latitude", strLatitude)); 
      params1.add(new BasicNameValuePair("longitude", strLongitude)); 
      // getting JSON Object 
      // Note that create product url accepts POST method 
      JSONObject json = jsonParser.makeHttpRequest(url_create_product, 
        "POST", params1); 
      // check log cat fro response 
      Log.d("Create Response", json.toString()); 
      try { 
       int success = json.getInt(TAG_SUCCESS); 
       if (success == 1) { 
        // successfully updated 
       } else { 
        // failed to create product 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      return null; 
     } 
    } 
} 

**

預先感謝您的傢伙。

好吧,我想我不需要在這裏發佈我的PHP代碼,但如果你想檢查只是通知我。 :)

回答

0

我猜你的數字超過了int的範圍。嘗試使用BigInteger或可能是長基元類型。

+0

好吧好吧,我會嘗試。 – MakAdin 2013-02-25 02:22:17

+0

突然它不起作用。但謝謝你的回答 – MakAdin 2013-02-25 03:00:09