I am developing an Android Application which retreives the Location and
sends this to a OData Server via Restlet.

In Android the Location sets Longitude and Latitude as double.

    double lat = location.getLatitude();

My Restlet / OData Service:

    public class LatLoc {

      private double latitude;

      public void setLatitude(double latitude) {
        this.latitude = latitude;
      }
    }

The OData $metadata:

    <EntityType Name="locations">
        <Property Name="latitude" Type="Edm.Double"/>

The method responsible to add a Entity: (GeoService is the class handeling
the Restlet connection and implements the method 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);
      }
    }

The `println` shows a 'normal' Latitude in form XX.XXXXXXXXXXX (with at
least 6 digits after the '.')

But the server receives a Latitude like XX.XXX; so only with 3 digits after
the decimal point.

The documentation of Restlet staits, that Edm.Double and the primitive
datatype double arer equivalent.

Where is my error, that the double values are cut off while being send to
the server?

With best regards
Martin Grohmann

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3033417

Reply via email to