PostGIS  3.4.0dev-r@@SVN_REVISION@@

◆ parse_geojson()

static LWGEOM * parse_geojson ( json_object *  geojson,
int *  hasz 
)
inlinestatic

Definition at line 363 of file lwin_geojson.c.

364 {
365  json_object *type = NULL;
366  const char *name;
367 
368  if (!geojson)
369  {
370  lwerror("invalid GeoJSON representation");
371  return NULL;
372  }
373 
374  type = findMemberByName(geojson, "type");
375  if (!type)
376  {
377  lwerror("unknown GeoJSON type");
378  return NULL;
379  }
380 
381  name = json_object_get_string(type);
382 
383  if (strcasecmp(name, "Point") == 0)
384  return parse_geojson_point(geojson, hasz);
385 
386  if (strcasecmp(name, "LineString") == 0)
387  return parse_geojson_linestring(geojson, hasz);
388 
389  if (strcasecmp(name, "Polygon") == 0)
390  return parse_geojson_polygon(geojson, hasz);
391 
392  if (strcasecmp(name, "MultiPoint") == 0)
393  return parse_geojson_multipoint(geojson, hasz);
394 
395  if (strcasecmp(name, "MultiLineString") == 0)
396  return parse_geojson_multilinestring(geojson, hasz);
397 
398  if (strcasecmp(name, "MultiPolygon") == 0)
399  return parse_geojson_multipolygon(geojson, hasz);
400 
401  if (strcasecmp(name, "GeometryCollection") == 0)
402  return parse_geojson_geometrycollection(geojson, hasz);
403 
404  lwerror("invalid GeoJson representation");
405  return NULL; /* Never reach */
406 }
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
Definition: lwutil.c:190
static LWGEOM * parse_geojson_geometrycollection(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:332
static LWGEOM * parse_geojson_multipoint(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:248
static LWGEOM * parse_geojson_multipolygon(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:312
static LWGEOM * parse_geojson_multilinestring(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:274
static LWGEOM * parse_geojson_linestring(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:160
static LWGEOM * parse_geojson_polygon(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:242
static LWGEOM * parse_geojson_point(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:149
static json_object * findMemberByName(json_object *poObj, const char *pszName)
Definition: lwin_geojson.c:52
type
Definition: ovdump.py:42

References findMemberByName(), lwerror(), parse_geojson_geometrycollection(), parse_geojson_linestring(), parse_geojson_multilinestring(), parse_geojson_multipoint(), parse_geojson_multipolygon(), parse_geojson_point(), parse_geojson_polygon(), and ovdump::type.

Referenced by lwgeom_from_geojson(), and parse_geojson_geometrycollection().

Here is the call graph for this function:
Here is the caller graph for this function: