你知道为什么我的坐标在我将它存储到我的数据库时会一直更改为 xxx.000000。以前,它工作正常,但是当我继续测试它时,它没有正确保存我的坐标。
例如,我想存储 120.993235 和 14.612364,然后当它在数据库中时转换为 120.000000 和 14.000000。你们能帮帮我吗?这些是我的代码。
**
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
public static double ILatitude;
public static double 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());
int longitude = (int) (location.getLongitude());
int GLatitude = (int) (location.getLatitude() * 1000000);
int GLongitude = (int)(location.getLongitude() * 1000000);
GeoPoint point = new GeoPoint(GLatitude, GLongitude);
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 = (double)latitude;
ILongitude = (double)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 = Double.toString(ILatitude);
String strLongitude = Double.toString(ILongitude);
// Building parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("latitude", strLatitude));
params.add(new BasicNameValuePair("longitude", strLongitude));
// getting JSON Object
// Note that create product url accepts POST method
JSONObject json = jsonParser.makeHttpRequest(url_create_product,
"POST", params);
// 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;
}
}
}
**