1859{
1860 ArrayIterator iterator;
1862 bool isnull;
1863 bool gotsrid = false;
1864 uint32_t i = 0;
1865
1867
1868 iterator = array_create_iterator(array, 0, NULL);
1869
1870 while (array_iterate(iterator, &value, &isnull))
1871 {
1873
1874 if (isnull)
1875 continue;
1876
1878
1880 if (!lw_geoms[i])
1881 {
1882 lwpgerror("Geometry deserializing geometry");
1883 return NULL;
1884 }
1885 if (!gotsrid)
1886 {
1887 gotsrid = true;
1889 }
1890 else
1892
1893 i++;
1894 }
1895
1896 return lw_geoms;
1897}
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.