gpt4 book ai didi

postgresql - TypeORM 使用 ST_GeomFromGeoJSON 插入几何类型

转载 作者:行者123 更新时间:2023-12-04 08:56:14 24 4
gpt4 key购买 nike

我有一个使用 Geometry 的 postgres 表列类型。
这是我的表:

CREATE TABLE areas (
id SERIAL PRIMARY KEY,
name VARCHAR(64),
polygon GEOMETRY
);
而且,通常我插入的数据如下:
INSERT INTO areas (name, polygon) VALUES (
'A',
ST_GeometryFromText('POLYGON ((-123.11386585235593 49.284015800344065,
-123.11882257461549 49.28074038150665,
-123.11337232589727 49.27721276406796,
-123.1078577041626 49.281104327676616,
-123.10996055603025 49.28152426222755,
-123.11386585235593 49.284015800344065))'));
如果我从 postgres 运行语句,当前工作正常。
但是在我的 NestJS/TypeORM 实体中,我定义了:
@Column('geometry', {nullable: true, name: 'polygon ' }
@ApiProperty()
polygon : string;
一旦我分配了值(value):
区域 .polygon = 'POLYGON ((-123.11386585235593 49.284015800344065,
-123.11882257461549 49.28074038150665,
-123.11337232589727 49.27721276406796,
-123.1078577041626 49.281104327676616,
-123.10996055603025 49.28152426222755,
-123.11386585235593 49.284015800344065))';
我收到此错误:

error: error: unknown GeoJSON typeat Parser.parseErrorMessage (C:\Users\myuserpath\myproject\node_modules\pg-protocol\dist\parser.js:278:15)


但我注意到原始查询是:
INSERT INTO "areas VALUES ('A', ST_GeomFromGeoJSON('POLYGON ((-123.11386585235593 49.284015800344065, 
-123.11882257461549 49.28074038150665,
-123.11337232589727 49.27721276406796,
-123.1078577041626 49.281104327676616,
-123.10996055603025 49.28152426222755,
-123.11386585235593 49.284015800344065)))'::geometry)
我不确定该列在哪里定义 ST_GeomFromGeoJSON如何使用 TypeORM 插入该多边形?

最佳答案

经过长时间的研究,我找到了一种方法。
还有另一种执行插入的方法:

const myPolygon = [[-123.11882257461549 49.28074038150665],[...],[...],[...]]

const areas = await getConnection()
.createQueryBuilder()
.insert()
.into(Areas) //HERE YOUR TABLE NAME
.values({
name: 'MrMins',
columnX: 'lorem ipsum', //LIST OF YOUR COLUMNS
active: true, //LIST OF YOUR COLUMNS
polygon: () =>
`ST_GeomFromGeoJSON( '{ "type": "Polygon", "coordinates": [${myPolygon}] }' )`,
})
.execute();
该实体在问题中声明。但是这种方式来执行 Insert你可以使用任何你想要的功能: ST_GeometryFromText或者即使您正在使用 POINT .

关于postgresql - TypeORM 使用 ST_GeomFromGeoJSON 插入几何类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63820493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com