PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como inserir um ponto PostGIS GEOMETRY no Sequelize ORM?


Expandindo a resposta de l0oky, o teste de integração tem muitas dicas boas sobre como usar o json com vários tipos de geometria. Basicamente, parece que sequelize irá stringificar o objeto de geometria fornecido assumindo que é um GeoJSON válido e canalizar isso para a função PostGIS ST_GeomFromGeoJSON. Portanto, basta seguir a especificação GeoJSON para objetos de geometria.

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

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

Cadeias de linha:
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) {
...
});

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