>
> Looks great, although it's pretty hard to read:


Attached as a file


> Agreed, except I don't like returning 0 for missing data -- that has
> bitten me in the ass several times (you can imagine how nice a 3D
> terrain model looks like when some random points in the model have a
> missing altitude value, and that's expressed with a zero...).
>



> > Do you see any good addition to the status enum?   I was going to add a
> > bunch and then I though a human readable string would be better.   The
> only
> > ones I thought might be useful are.   "No Service Available, No Position
> > Available, Currently acquiring position.", are these useful to a program
> or
> > just the user?  If it is useful to the program, then I would add, to the
> > user then piggy back on the string message.
>

I rethought status and here's what I think is better.

A set of flags. bit packed into a int.

0 No Service available
1 currently acquiring Altitude
2 currently acquiring Long
4 currently acquiring Lat
8 Altitude Available
16 Long Available
32 Lat Available

This would solve the hostip altitude probem it could have a status (48)
meaning only lat and long are valid.  So technically you would

call init
call status
call position

hook up signal to position and status to find when things changed.



> > I've been thinking now that we should add a "position_hint" input to the
> API
> > for use in auto submitting your position to Host IP.   There could be
> some
> > kind of configuration for privacy in geoclue master.  I wonder if this
> could
> > be generic for more API.   I know you can do assisted GPS.   is there a
> good
> > way to add this too?
>
> I'm undecided on the data submission issue... I'd probably put the
> submission in a separate program.
>
> I fully agree on the privacy config: there should be geoclue-wide
> position privacy settings that geoclue _and_ applications can use.
> Although it might not be a top priority just yet, this will be very
> important when our position data starts to escape to the internet (like
> with the Gajim XEP-0080-implementation). Speaking of which, we probably
> should follow and take part in xmpp/XEP work in that area.


I think privacy is an issues, but we shouldn't let it affect our api too
much. It should a UI type configuration setting.
I won't put it in now.   I guess it wouldn't be hard for the hostapi to put
it's own listen into itself.

Keith Preston
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Geoclue - A DBus api and wrapper for geography information
 * Copyright (C) 2006-2007 by Garmin Ltd. or its subsidiaries
 * 
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License version 2 as published by the Free Software Foundation; 
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 -->

<node name="/org/freedesktop/geoclue/position">
  <interface name="org.freedesktop.geoclue.position">
  
    <method name="version">
      <arg type="i" name="major" direction="out" />
      <arg type="i" name="minor" direction="out" />
      <arg type="i" name="micro" direction="out" />
    </method> 

    <method name="service_provider">
      <arg type="s" name="name" direction="out" />
    </method>  
        
    <method name="current_position">    
      <arg type="i" name="timestamp" direction="out" /><!-- This is the NMEA standard UTC time in the format 123456 with represents 12:34:56 hours:minutes:seconds -->
      <arg type="d" name="latitude" direction="out" /><!-- Degrees -->
      <arg type="d" name="longitude" direction="out" /><!-- Degrees -->
      <arg type="d" name="altitude" direction="out" /><!-- Meters -->
    </method>

    <signal name="current_position_changed">
      <arg type="i" name="timestamp" direction="out" /><!-- This is the NMEA standard UTC time in the format 123456 with represents 12:34:56 hours:minutes:seconds -->
      <arg type="d" name="latitude" direction="out" /><!-- Degrees -->
      <arg type="d" name="longitude" direction="out" /><!-- Degrees -->
      <arg type="d" name="altitude" direction="out" /><!-- Meters -->
    </signal>

    <method name="current_position_error">    
      <arg type="d" name="latitude_error" direction="out" /><!-- Meters -->
      <arg type="d" name="longitude_error" direction="out" /><!-- Meters -->
      <arg type="d" name="altitude_error" direction="out" /><!-- Meters -->
    </method>
 
    <!-- status enum    GEOCLUE_POSITION_NO_POSITION_AVAILABLE                       = -1,  
                        GEOCLUE_POSITION_TWO_DIMENSION                               = 1,  
                        GEOCLUE_POSITION_THREE_DIMENSION                             = 2,  
                        GEOCLUE_POSITION_TWO_DIMENSION_DIFFERENTIAL                  = 3,  
                        GEOCLUE_POSITION_THREE_DIMENSION_DIFFERENTIAL                = 4
                           -->
                           
    <method name="service_status">    
      <arg type="i" name="status" direction="out"/>
      <arg type="s" name="user_message" direction="out"/> <!-- This message is a user readable string, generally used to explain why the backend cannot locate the current position  ("Weak GPS Signal, no internet connection available for lookup")-->      
    </method>

    <signal name="service_status">    
      <arg type="i" name="status" direction="out"/>
      <arg type="s" name="user_message" direction="out"/> <!-- This message is a user readable string, generally used to explain why the backend cannot locate the current position  ("Weak GPS Signal, no internet connection available for lookup")-->      
    </signal> 

    <method name="current_velocity">    
      <arg type="i" name="timestamp" direction="out" /><!-- This is the NMEA standard UTC time in the format 123456 with represents 12:34:56 hours:minutes:seconds -->
      <arg type="d" name="north_velocity" direction="out" /><!-- Meters per Second -->
      <arg type="d" name="east_velocity" direction="out" /><!-- Meters per Second -->
    </method>
    
    <method name="satellites_in_view">    	
      <arg type="ai" name="prn_numbers" direction="out" />     
    </method>

    <method name="satellites_data">    	
      <arg type="i" name="prn_number" direction="in" />
      <arg type="d" name="elevation" direction="out" /><!-- Degrees -->
      <arg type="d" name="azimuth" direction="out" /><!-- Degrees -->
      <arg type="d" name="signal_noise_ratio" direction="out" />
      <arg type="b" name="differential" direction="out" />
      <arg type="b" name="ephemeris" direction="out" />
    </method>
      
    <method name="civic_location">
      <arg type="s" name="country" direction="out" />
      <arg type="s" name="region" direction="out" />
      <arg type="s" name="locality" direction="out" />
      <arg type="s" name="area" direction="out" />
      <arg type="s" name="postalcode" direction="out" />
      <arg type="s" name="street" direction="out" />
      <arg type="s" name="building" direction="out" />
      <arg type="s" name="floor" direction="out" />
      <arg type="s" name="room" direction="out" />
      <arg type="s" name="description" direction="out" />
      <arg type="s" name="text" direction="out" />
    </method>

    <signal name="civic_location_changed">
      <arg type="s" name="country" direction="out" />
      <arg type="s" name="region" direction="out" />
      <arg type="s" name="locality" direction="out" />
      <arg type="s" name="area" direction="out" />
      <arg type="s" name="postalcode" direction="out" />
      <arg type="s" name="street" direction="out" />
      <arg type="s" name="building" direction="out" />
      <arg type="s" name="floor" direction="out" />
      <arg type="s" name="room" direction="out" />
      <arg type="s" name="description" direction="out" />
      <arg type="s" name="text" direction="out" />
    </signal>    
   
    <method name="shutdown">
    </method>    

  </interface>
</node>
_______________________________________________
GeoClue mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/geoclue

Reply via email to