PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie füge ich einen PostGIS GEOMETRY Point in Sequelize ORM ein?

Aufbauend auf l0okys Antwort, dem Integrationstest enthält viele gute Hinweise zur Verwendung von json mit verschiedenen Arten von Geometrie. Grundsätzlich scheint es, dass sequelize das bereitgestellte Geometrieobjekt unter der Annahme, dass es sich um gültiges GeoJSON handelt, stringifiziert und dieses in die PostGIS-Funktion ST_GeomFromGeoJSON leitet. Daher kann man einfach der GeoJSON-Spezifikation folgen für Geometrieobjekte.

Punkte:

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

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

Linienfolgen:

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

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

Polygone:

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

Festlegen einer benutzerdefinierten SRID:

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