【发布时间】:2012-12-03 12:00:46
【问题描述】:
我正在开发一个 Android 应用程序,它检索位置并通过 Restlet [1] 将其发送到 OData 服务器
在 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"/>
负责添加Entity的方法:(GeoService是处理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 的形式显示“正常”纬度(“.”后至少有 6 位数字)
但是服务器收到一个纬度,比如 XX.XXX;所以只有小数点后3位。
Restlet 的文档表明 Edm.Double 和原始数据类型 double 是等效的。
我的错误在哪里,双值在发送到服务器时被切断了?
[1]http://wiki.restlet.org/developers/172-restlet/267-restlet/271-restlet.html
【问题讨论】:
标签: android geolocation odata restlet edmx