PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ parse_geojson()

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

Definition at line 361 of file lwin_geojson.c.

362 {
363  json_object *type = NULL;
364  const char *name;
365 
366  if (!geojson)
367  {
368  lwerror("invalid GeoJSON representation");
369  return NULL;
370  }
371 
372  type = findMemberByName(geojson, "type");
373  if (!type)
374  {
375  lwerror("unknown GeoJSON type");
376  return NULL;
377  }
378 
379  name = json_object_get_string(type);
380 
381  if (strcasecmp(name, "Point") == 0)
382  return parse_geojson_point(geojson, hasz);
383 
384  if (strcasecmp(name, "LineString") == 0)
385  return parse_geojson_linestring(geojson, hasz);
386 
387  if (strcasecmp(name, "Polygon") == 0)
388  return parse_geojson_polygon(geojson, hasz);
389 
390  if (strcasecmp(name, "MultiPoint") == 0)
391  return parse_geojson_multipoint(geojson, hasz);
392 
393  if (strcasecmp(name, "MultiLineString") == 0)
394  return parse_geojson_multilinestring(geojson, hasz);
395 
396  if (strcasecmp(name, "MultiPolygon") == 0)
397  return parse_geojson_multipolygon(geojson, hasz);
398 
399  if (strcasecmp(name, "GeometryCollection") == 0)
400  return parse_geojson_geometrycollection(geojson, hasz);
401 
402  lwerror("invalid GeoJson representation");
403  return NULL; /* Never reach */
404 }
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:330
static LWGEOM * parse_geojson_multipoint(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:246
static LWGEOM * parse_geojson_multipolygon(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:310
static LWGEOM * parse_geojson_multilinestring(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:272
static LWGEOM * parse_geojson_linestring(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:158
static LWGEOM * parse_geojson_polygon(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:240
static LWGEOM * parse_geojson_point(json_object *geojson, int *hasz)
Definition: lwin_geojson.c:147
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: