Soy nuevo en GeoJSON. Tengo una colección de características GeoJSON como se muestra y me gustaría almacenarla en la tabla postgres (testtable). Mi tabla de postgres tiene una columna de geometría e identificación de serie.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
2565453.1826721914,
-3835048.659760314
]
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
2727584.7219710173,
-3713449.1942418693
],
[
2732476.691781269,
-3992291.473426192
]
]
}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
2442627.9025405287,
-3705499.954308534
],
[
2425506.008204649,
-3886502.837287831
],
[
2425506.008204649,
-3886502.837287831
],
[
2555143.2081763083,
-3910962.686339088
],
[
2442627.9025405287,
-3705499.954308534
]
]
]
}
}
]
}
Me gustaría insertar los datos de GeoJSON en la tabla testtable.
¿Cómo lo hago?
Estoy usando postgres versión 9.3.5 con postgis versión 2.1.3
Me han dirigido a preguntas anteriores que responden sobre cómo almacenar una sola característica, por ejemplo, un punto o polígono. Mi pregunta es cómo guardar múltiples funciones en el archivo GeoJSON. Por características múltiples me refiero a una mezcla de puntos, líneas y tipos de características poligonales en un archivo.
Respuestas:
Suponiendo que tiene al menos PostgreSQL versión 9.3, puede usar algunas funciones y operadores JSON para extraer las partes relevantes de la especificación GeoJSON requerida por ST_GeomFromGeoJSON para crear geometrías.
Pruebe lo siguiente, donde puede reemplazar el JSON en la parte superior:
Encuentra tres geometrías. La
geom
columna tiene el objeto de geometría, ygid
es el número de entidad. LaST_AsText
función muestra el equivalente WKT de cada geometría. También he incluido losproperties
atributos o que se pueden definir para cada geometría, como se muestra en la especificación.Debe asignar un SRID para la geometría, utilizando ST_SetSRID.
O si simplemente necesita una única GEOMETRYCOLLECTION heterogénea, puede hacerla compacta de esta manera:
Consulte también Creación de colecciones de características GeoJSON con funciones JSON y PostGIS del Postgres OnLine Journal, que hace lo contrario.
fuente