我有一个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;
一旦我将值赋值为:
地区。多边形='多边形(-123.11386585235593 49.28401580344065,-123.11882257461549.28074038150665,-123.113372325897249.27721276406796,-123.1078577041626 49.281104327676616,-123.1099605560302549.28152426222755,-123.113865835593 49.28401580344065));
我得到这个错误:
错误:错误:分析器处的GeoJSON类型未知。parseErrorMessage(C:\Users\myuserpath\myproject\node\u 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
如何使用tyform插入多边形?
我发现实体的列只需在解析器上使用标准突变进行如下注释:
@Column({
type: 'geometry',
spatialFeatureType: 'LineString',
srid: 4326,
})
与使用querybuilder相比,我更喜欢这种方法,当您进行查询时,您的数据已经格式化为几何体的text/JSON格式。
经过长时间的研究,我找到了一种方法。还有另一种执行插入的方法:
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();
实体声明为问题中的实体。但通过这种方式执行插入
,您可以使用任何想要的功能:ST_GeometryFromText
,或者即使您使用的是点
。
前面课程绘制了一个立方体效果,下面通过three.js的球体构造函数SphereGeometry()在三维场景中添加一个球几何体。 SphereGeometry构造函数 SphereGeometry(radius, widthSegments, heightSegments) 第一个参数radius约束的是球的大小,参数widthSegments、heightSegments约束的是球面的精度,
问题内容: 由于有几个版本,h2确实支持空间几何。 在Java中选择并插入几何图形不是问题。但是如何将它们插入纯sql中呢?文档显示它使用WKT。但是,当我尝试插入WKT时出现错误。 这是一个示例插入: 感谢您的提示! 问题答案: 据我所知,后缀不是WKT(知名文本),而是EWKT。 H2数据库当前不支持EWKT(扩展的知名文本)。您将不得不使用。一个完整的例子:
使用GLE管材和挤出库(http://www.linas.org/gle/)我能够使用OpenGL将2D计数挤出到3D对象中。该库在CPU上完成所有工作,并使用OpenGL即时模式。 我想在GPU上使用几何着色器进行挤压可能会更快,尤其是在渲染大量几何图形时。因为我还没有在OpenGL中使用几何着色器的任何经验,我想知道这是否可能,以及我必须注意什么。您认为将这些计算转移到GPU并提高性能是个好主
我有一个PHP7.3表单,要求用户输入名称、WKT和SRID。我想将WKT和SRID上传到SQL Server 2017,以便它在upload_WKT_测试中使用STGeomFromText创建一个几何对象: 我的名字。php: 我知道通过表单接受用户输入的首选方法是使用参数化查询来防止SQL注入。我相信错误消息的来源与WKT周围的引用有关,因为它们没有进入INSERT into语句。是否可以用引
我正在开发一个将在MySql和MS SQL上运行的应用程序。 我有一个字段是空间的“几何”类型。 通过使用: (点是org.springframework.data.geo.point) Hibernate正确创建字段(hbm2ddl)。 但插入任何一点都不起作用。I get:数据截断:无法从发送到“几何体”字段的数据中获取几何体对象 我使用spring boot jpa启动器。。而不是直接冬眠。
几何体组件为实体提供基本形状。这个 primitive属性定义常规形状。在计算机图形学中,几何基元是不可分的基本形状。通常还定义一个材质组件来创建完整的网孔(Mesh)。 目录 基础属性 每种几何图形类型都具有以下属性: 属性 描述 默认值 buffer 将几何体转换为BufferGeometry以减少内存使用,但代价是更难操作。 true primitive 几何体的名称(例如,下面列出的几何体