Postgresql 指定位置特定半径圆中存在的返回点

Postgresql 指定位置特定半径圆中存在的返回点,postgresql,radius,Postgresql,Radius,我正在使用PostgreSQL。我希望从特定点返回带圆圈的点,即地理代码。现在我有了一个地理编码和圆的半径。根据这些数据,我可以计算圆内的点吗? 事实上,我已经在PostGIS上尝试过了,效果很好,但PostGIS只处理空间数据,我有非空间数据。 在PostGIS中,我使用了以下查询: select addressid,ST_AsText(geocode)geocode from aspatial_address as A where ST_Point_Inside_Circle(a.geoco

我正在使用PostgreSQL。我希望从特定点返回带圆圈的点,即地理代码。现在我有了一个地理编码和圆的半径。根据这些数据,我可以计算圆内的点吗? 事实上,我已经在PostGIS上尝试过了,效果很好,但PostGIS只处理空间数据,我有非空间数据。 在PostGIS中,我使用了以下查询:

select addressid,ST_AsText(geocode)geocode from aspatial_address as A where ST_Point_Inside_Circle(a.geocode,14.083333,19.583333,7)
我的表格结构是:

create table maddress
{
 addressid bigint(30) primary key;
 addressline varchar2(40) not null;
 geocode varchar2(20) not null;
}
我希望返回圆中的点,其半径为7 km,距离地理代码14.083333,19.583333


现在,提示我..如何在PostgreSQL中执行此操作?这里可能吗?PostgreSQL中是否使用了它们的几何函数?请告诉我..

PostgreSQL有几种几何图形类型可供使用:

SELECT addressid, addressline, geocode
FROM maddress
WHERE geocode::point <@ circle '((14.083333,19.583333), 7)';
请注意,如果地理编码生成带有非标准标点符号的x和y,则应使用字符串函数将地理编码解析为点类型可以接受的格式


请记住,如果地理编码和14.083333、19.583333在长纬度坐标中,则不能使用PostgreSQL几何体类型,因为对于地理编码位置和半径,单位为不同的球面长纬度(度),圆心与平面距离(公里)。在这种情况下,您必须使用PostGIS将长lat坐标转换为某个平面坐标参考系。

PostGIS不仅仅处理空间数据。它是PostgreSQL的扩展,因此您可以使用PostGIS函数执行空间谓词,并将该输出与您通常在PostgreSQL中执行的任何其他关系相关联。你能展示表格结构并给出一个你想在单个输出中看到的相关数据的例子吗?嗨@Patrick..谢谢回答..我已经用表格结构和我的查询更新了我的问题..请看一看,让我知道如何使用字符串函数解析地理代码?我正在动态地输入slat、long和radius。在运行时,我传递的值在那个时候给出了错误。为什么会这样?编辑您的问题以准确显示地理代码值的样子,我将编辑我的答案。我已经发布了一个关于此的问题。请您看一下