Osmium  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends
Osmium::OSM::Position Class Reference

#include <position.hpp>

List of all members.

Public Member Functions

 Position ()
 Position (int32_t x, int32_t y)
 Position (double lon, double lat)
bool defined () const
int32_t x () const
int32_t y () const
double lon () const
double lat () const
Positionlon (double lon)
Positionlat (double lat)
v8::Handle< v8::Array > js_to_array () const
 operator uint32_t () const
 conversion to uint32_t
 operator geos::geom::Coordinate () const

Static Private Member Functions

static int32_t double_to_fix (double c)
static double fix_to_double (int32_t c)

Private Attributes

int32_t m_x
int32_t m_y

Static Private Attributes

static const int precision = 10000000

Friends

bool operator== (const Position &p1, const Position &p2)
bool operator!= (const Position &p1, const Position &p2)
std::ostream & operator<< (std::ostream &out, const Position &position)

Detailed Description

Positions are stored in 32 bit integers for the x and y coordinates, respectively. This gives you an accuracy of a few centimeters, good enough for OSM use. (The main OSM database uses the same scheme.)


Constructor & Destructor Documentation

Osmium::OSM::Position::Position ( ) [inline, explicit]
Osmium::OSM::Position::Position ( int32_t  x,
int32_t  y 
) [inline, explicit]
Osmium::OSM::Position::Position ( double  lon,
double  lat 
) [inline, explicit]

Member Function Documentation

bool Osmium::OSM::Position::defined ( ) const [inline]
static int32_t Osmium::OSM::Position::double_to_fix ( double  c) [inline, static, private]
static double Osmium::OSM::Position::fix_to_double ( int32_t  c) [inline, static, private]
v8::Handle<v8::Array> Osmium::OSM::Position::js_to_array ( ) const [inline]
double Osmium::OSM::Position::lat ( ) const [inline]
Position& Osmium::OSM::Position::lat ( double  lat) [inline]
double Osmium::OSM::Position::lon ( ) const [inline]
Position& Osmium::OSM::Position::lon ( double  lon) [inline]
Osmium::OSM::Position::operator geos::geom::Coordinate ( ) const [inline]

Conversion of Position to GEOS Coordinate.

Osmium::OSM::Position::operator uint32_t ( ) const [inline]

conversion to uint32_t

int32_t Osmium::OSM::Position::x ( ) const [inline]
int32_t Osmium::OSM::Position::y ( ) const [inline]

Friends And Related Function Documentation

bool operator!= ( const Position p1,
const Position p2 
) [friend]
std::ostream& operator<< ( std::ostream &  out,
const Position position 
) [friend]
bool operator== ( const Position p1,
const Position p2 
) [friend]

Member Data Documentation

int32_t Osmium::OSM::Position::m_x [private]
int32_t Osmium::OSM::Position::m_y [private]
const int Osmium::OSM::Position::precision = 10000000 [static, private]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines