为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
之前使用的PG数据库的 PostGis 来维护空间信息,发现 DM 也有对应的空间包。但是在 ST_Distance 函数上面发现了问题。
PG sql 为:
SELECT ST_Distance(
ST_SetSRID(ST_MakePoint(114, 22), 4326)::geography,
ST_SetSRID(ST_MakePoint(121, 21), 4326)::geography
) AS distance_meters;
计算结果为:733670.49952608 单位是米
对应的DM GEO2 我的 sql 为
SELECT dmgeo2.ST_Distance( dmgeo2.ST_GeometryFromText('POINT(114 22)'), dmgeo2.ST_GeometryFromText('POINT(121 31)')) ;
计算结果是11.40175425099138
问题总结:
虽然可能是坐标系 4326 在 DM 没指定导致的,但是差距也太大,另外想咨询下专家,DM GEO2 有没有提供类似于 PG 的 ST_DWithin 函数,能够直接计算以一个点为圆心,距离为半径 计算在范围内点位信息的函数。
最后一点
想问问 咱们有没有稍微详细点的 各个函数使用方式、参数的文档,感谢专家
SELECT dmgeo2.ST_Distance( dmgeo2.ST_GeomToGeog(dmgeo2.ST_SetSRID(dmgeo2.ST_MakePoint(114, 22), 4326)), dmgeo2.ST_GeomToGeog(dmgeo2.ST_SetSRID(dmgeo2.ST_MakePoint(121, 21), 4326)) );