对具有不同 SRID 的两个 GEOMETRIES 进行操作
Posted
技术标签:
【中文标题】对具有不同 SRID 的两个 GEOMETRIES 进行操作【英文标题】:Operation on two GEOMETRIES with different SRIDs 【发布时间】:2014-09-18 19:16:50 【问题描述】:嗨,我正在尝试获取某个点 10 公里范围内的所有点,但我一直在获取
错误:
这是我的查询:
SELECT * FROM milllocations_30aug2014 WHERE st_distance(milllocations_30aug2014.shape, ST_GeomFromText('POINT(-93.62011857184822 51.02535700166606)', 4269))< 10000
milllocations_30aug2014.shape 也是这样的:0101000020E61000007CF9F5285CAF5DC088DE3D0AD7834B40
感谢您的帮助
【问题讨论】:
【参考方案1】:我设法使用 st_transform 修复它
SELECT DISTINCT * FROM " + areaTable.getValue() + " WHERE st_distance(ST_Transform("+areaTable.getValue()+".shape,4269), ST_GeomFromText('POINT("+longitude+" "+latitude+")', 4269))< 10000
【讨论】:
如果您先设置表的 SRID,而不是像这样动态转换,您可能会获得更好的性能。以上是关于对具有不同 SRID 的两个 GEOMETRIES 进行操作的主要内容,如果未能解决你的问题,请参考以下文章
POSTGIS:错误:对混合 SRID 几何图形的操作。试图用两个不同的 SRIDS/表找到重叠的几何
哪个 SRID 适用于 SpatiaLite db 中的添加和排序?
如何从 ASP.Net 核心中的 Json 文件中播种 NetTopologySuite.Geometries.Point 数据