[postgis-users] postgis+zaurus 5500
Jonathan Giorgio Ghellere
jonathan at ecosconsult.com.br
Fri Jul 2 13:59:20 PDT 2004
Hi,
I set BIG and LITTLE_ENDIAN and in both cases the problem persists.
In the BIG_ENDIAN, postgis return a XDR, and the select was a NDR..... a
little crazy.
# select oid,asbinary(geom,'NDR') as qgs_feature_geometry from gtest where
geom && GeometryFromText('BOX3D( 1.529391 2.750000, 7.
470609 8.250000)'::box3d,-1);
oid |
qgs_feature_geometry
-------+----------------------------------------------------------------------
------------------------------------------------------------------------------
19203 |
010000000200000004000000004000000000000000400800000000000040100000000000004014
00000000000040180000000000004014000000000000401C00000000000040200000
(1 row)
but is swapped too.
this is the endian.h of zaurus:
--------------------------cut---------------------
#ifndef _ENDIAN_H
#define _ENDIAN_H 1
#include <features.h>
/* Definitions for byte order, according to significance of bytes,
from low addresses to high addresses. The value is what you get by
putting '4' in the most significant byte, '3' in the second most
significant byte, '2' in the second least significant byte, and '1'
in the least significant byte, and then writing down one digit for
each byte, starting with the byte at the lowest address at the left,
and proceeding to the byte with the highest address at the right. */
#define __LITTLE_ENDIAN 1234
#define __BIG_ENDIAN 4321
#define __PDP_ENDIAN 3412
/* This file defines `__BYTE_ORDER' for the particular machine. */
#include <bits/endian.h>
/* Some machines may need to use a different endianness for floating point
values. */
#ifndef __FLOAT_WORD_ORDER
# define __FLOAT_WORD_ORDER __BYTE_ORDER
#endif
#ifdef __USE_BSD
# define LITTLE_ENDIAN __LITTLE_ENDIAN
# define BIG_ENDIAN __BIG_ENDIAN
# define PDP_ENDIAN __PDP_ENDIAN
# define BYTE_ORDER __BYTE_ORDER
#endif
#if __BYTE_ORDER == __LITTLE_ENDIAN
# define __LONG_LONG_PAIR(HI, LO) LO, HI
#elif __BYTE_ORDER == __BIG_ENDIAN
# define __LONG_LONG_PAIR(HI, LO) HI, LO
#endif
#endif /* endian.h */
-------------------------- /cut------------------
any idea ?
tks
On Fri, 2 Jul 2004 17:06:31 +0200, strk wrote
> It seems postgis is not able to correctly detect BYTE_ORDER
> on zaurus. Please check BYTE_ORDER and the like defines
> in postgis_fn.c. Also try to find out where does your system
> define that (if it does) or a architectur specific header defined
> that could be handled for the specific case.
> --strk;
>
> On Fri, Jul 02, 2004 at 11:44:42AM -0300, Jonathan Giorgio Ghellere wrote:
> > Hello,
> >
> > I've compiled postgresql+postgis+proj for a zaurus 5500 running openzaurus
3.
> > 3.5 and used qgis in a x86 machine to connect to the database in the
zaurus.
> > The database was created using the http://postgis.refractions.
net/docs/c206.
> > html:
> >
> > CREATE TABLE gtest ( ID int4, NAME varchar(20) );
> > SELECT AddGeometryColumn('dbname','gtest','geom',-1,'LINESTRING',2);
> > INSERT INTO gtest (ID, NAME, GEOM) VALUES (1, 'First Geometry',
> > GeometryFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1));
> >
> > Everything goes ok, but, when I use QGIS (http://qgis.org), to retrieve a
> > feature map it returns a blank screen. So, I debug QGIS in order to see
how it
> > was selecting map and got something like this:
> >
> > select oid,asbinary(geom,'NDR') as qgs_feature_geometry from gtest where
geom
> > && GeometryFromText('BOX3D( 1.529391 2.750000, 7.
470609
> > 8.250000)'::box3d,-1);
> >
> > In psql that query line returns:
> >
> > oid |
> > qgs_feature_geometry
> >
-------+----------------------------------------------------------------------
> >
------------------------------------------------------------------------------
> > 21265 |
> >
010200000004000000000000400000000000000840000000000000104000000000000014400000
> > 00000000184000000000000014400000000000001C40000000000000204000000000
> > (1 row)
> >
> > Ok, this line did not show much, but take a look in the same query in a
x86
> > machine:
> >
> > oid |
> > qgs_feature_geometry
> >
-------+----------------------------------------------------------------------
> >
------------------------------------------------------------------------------
> > 19203 |
> >
000200000004000000000000000000004000000000000008400000000000001040000000000000
> > 1440000000000000184000000000000014400000000000001C400000000000002040
> > (1 row)
> >
> > It looks like the bytes are swapped. Do anybody knows why it's happening ?
> >
> > tks for the help.
> >
> > --
> > Jonathan Giorgio Ghellere
> > http://www.ecosconsult.com.br
> > EcosConsult Planejamento Ltda
> >
> >
> > _________________________
> > Linux - uvscan antivirus
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users at postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-users
--
http://www.ecosconsult.com.br
EcosConsult Planejamento Ltda
_________________________
Linux - uvscan antivirus
More information about the postgis-users
mailing list