PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come inserire un PostGIS GEOMETRY Point in Sequelize ORM?

Ampliando la risposta di l0oky, il test di integrazione ha molti buoni indizi su come usare json con vari tipi di geometria. Fondamentalmente, sembra che sequelize stringerà l'oggetto geometrico fornito supponendo che sia GeoJSON valido e lo convogli nella funzione PostGIS ST_GeomFromGeoJSON. Pertanto, si può semplicemente seguire le GeoJSON spec per oggetti geometrici.

Punti:

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

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

Linestring:

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

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

Poligoni:

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

Impostazione di uno SRID personalizzato:

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