0
我正在開發一個Android應用其中retreives位置和通過的Restlet其發送到一個的OData服務器[1]轉換原始Java數據類型的雙向的OData Edm.Double
在Android中的位置設置經緯度作爲雙。
double lat = location.getLatitude();
我的Restlet/OData服務:
public class LatLoc {
private double latitude;
public void setLatitude(double latitude) {
this.latitude = latitude;
}
}
的OData的$元數據:
<EntityType Name="locations">
<Property Name="latitude" Type="Edm.Double"/>
增加一個實體負責的方法:(GeoService是類HANDELING中的Restlet連接,實現方法addEntity())
public class LocTrans {
GeoService proxy = new GeoService();
void sendLoc(Location location) throws Exception, Throwable {
LatLoc locSend = new LatLoc();
locSend.setLatitude(location.getLatitude());
System.out.println("Lat")
proxy.addEntity(locSend);
}
}
的println
示出了形式XX.XXXXXXXXXXX「正常」緯度
但是服務器接收像XX.XXX一個緯度(在後具有至少6個數字「」);所以只能在小數點後3位數字。
Restlet staits的文檔,即Edm.Double和原始數據類型double arer等效。
我的錯誤在哪裏,在發送到服務器時是否切斷了雙精度值?
[1] http://wiki.restlet.org/developers/172-restlet/267-restlet/271-restlet.html