Definition at line 679 of file lwalgorithm.c.
680{
681 int is_even=1;
682 double lat[2], lon[2], mid;
683 int bit=32;
684 unsigned int ch = 0;
685
686 double longitude = pt->
x;
687 double latitude = pt->
y;
688
689 lat[0] = -90.0;
690 lat[1] = 90.0;
691 lon[0] = -180.0;
692 lon[1] = 180.0;
693
694 while (--bit >= 0)
695 {
696 if (is_even)
697 {
698 mid = (lon[0] + lon[1]) / 2;
699 if (longitude > mid)
700 {
701 ch |= 0x0001u << bit;
702 lon[0] = mid;
703 }
704 else
705 {
706 lon[1] = mid;
707 }
708 }
709 else
710 {
711 mid = (lat[0] + lat[1]) / 2;
712 if (latitude > mid)
713 {
714 ch |= 0x0001 << bit;
715 lat[0] = mid;
716 }
717 else
718 {
719 lat[1] = mid;
720 }
721 }
722
723 is_even = !is_even;
724 }
725 return ch;
726}
References POINT2D::x, and POINT2D::y.
Referenced by circ_node_compare(), and test_geohash_point_as_int().