2718{
2719 ArrayIterator iterator;
2721 bool isnull;
2722 bool gotsrid = false;
2723 uint32_t i = 0;
2724
2726
2727 iterator = array_create_iterator(array, 0, NULL);
2728
2729 while (array_iterate(iterator, &value, &isnull))
2730 {
2732
2733 if (isnull)
2734 continue;
2735
2737
2739 if (!lw_geoms[i])
2740 {
2741 lwpgerror("Geometry deserializing geometry");
2742 return NULL;
2743 }
2744 if (!gotsrid)
2745 {
2746 gotsrid = true;
2748 }
2749 else
2751
2752 i++;
2753 }
2754
2755 return lw_geoms;
2756}
void gserialized_error_if_srid_mismatch_reference(const GSERIALIZED *g1, const int32_t srid2, const char *funcname)
int32_t gserialized_get_srid(const GSERIALIZED *g)
Extract the SRID from the serialized form (it is packed into three bytes so this is a handy function)...
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
int gserialized_has_z(const GSERIALIZED *g)
Check if a GSERIALIZED has a Z ordinate.