sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo insertar un punto de GEOMETRÍA PostGIS en Sequelize ORM?

Ampliando la respuesta de l0oky, la prueba de integración tiene muchas buenas pistas sobre cómo usar el json con diferentes tipos de Geometría. Básicamente, parece que Sequelize encadenará el objeto de geometría proporcionado asumiendo que es GeoJSON válido y lo canalizará a la función PostGIS ST_GeomFromGeoJSON. Por lo tanto, uno puede simplemente seguir las especificaciones de GeoJSON para objetos de geometría.

Puntos:

var point = { type: 'Point', coordinates: [39.807222,-76.984722]};

User.create({username: 'username', geometry: point }).then(function(newUser) {
...
});

Cadenas lineales:

var line = { type: 'LineString', 'coordinates': [ [100.0, 0.0], [101.0, 1.0] ] };

User.create({username: 'username', geometry: line }).then(function(newUser) {
...
});

Polígonos:

var polygon = { type: 'Polygon', coordinates: [
             [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
               [100.0, 1.0], [100.0, 0.0] ]
             ]};

User.create({username: 'username', geometry: polygon }).then(function(newUser) {
...
});

Configuración de un SRID personalizado:

var point = { 
  type: 'Point', 
  coordinates: [39.807222,-76.984722],
  crs: { type: 'name', properties: { name: 'EPSG:4326'} }
};

User.create({username: 'username', geometry: point }).then(function(newUser) {
...
});