PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ geohash_point_as_int()

unsigned int geohash_point_as_int ( POINT2D pt)

Definition at line 663 of file lwalgorithm.c.

664{
665 int is_even=1;
666 double lat[2], lon[2], mid;
667 int bit=32;
668 unsigned int ch = 0;
669
670 double longitude = pt->x;
671 double latitude = pt->y;
672
673 lat[0] = -90.0;
674 lat[1] = 90.0;
675 lon[0] = -180.0;
676 lon[1] = 180.0;
677
678 while (--bit >= 0)
679 {
680 if (is_even)
681 {
682 mid = (lon[0] + lon[1]) / 2;
683 if (longitude > mid)
684 {
685 ch |= 0x0001u << bit;
686 lon[0] = mid;
687 }
688 else
689 {
690 lon[1] = mid;
691 }
692 }
693 else
694 {
695 mid = (lat[0] + lat[1]) / 2;
696 if (latitude > mid)
697 {
698 ch |= 0x0001 << bit;
699 lat[0] = mid;
700 }
701 else
702 {
703 lat[1] = mid;
704 }
705 }
706
707 is_even = !is_even;
708 }
709 return ch;
710}
double y
Definition liblwgeom.h:376
double x
Definition liblwgeom.h:376

References POINT2D::x, and POINT2D::y.

Referenced by circ_node_compare(), and test_geohash_point_as_int().

Here is the caller graph for this function: