PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment insérer un point PostGIS GEOMETRY dans Sequelize ORM ?

En développant la réponse de l0oky, le test d'intégration a beaucoup de bons indices sur la façon d'utiliser le json avec différents types de géométrie. Fondamentalement, il semble que sequelize chaînera l'objet géométrique fourni en supposant qu'il s'agit d'un GeoJSON valide et le dirigera vers la fonction PostGIS ST_GeomFromGeoJSON. Par conséquent, on peut simplement suivre la spec GeoJSON pour les objets géométriques.

Point :

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

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

Chaînes de lignes :

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

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

Polygones :

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) {
...
});

Configuration d'un SRID personnalisé :

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) {
...
});