我应该在 PostGIS 中使用什么方法来查找半径与客户相交的所有服务
What approach should I use in PostGIS to find all services that have a radius that intersect a customer
我是 PostGIS 的新手,正在寻找解决以下问题的合理方法的建议。我的服务具有 lat/lng 和服务半径(服务可用的区域)。我有一些客户只有 lat/lng。我想设置一个 table(s) 来支持索引查询 return 所有具有包含用户位置的服务区域的服务。
Service
- latitude
- longitude
- radius
- type
Customer
- latitude
- longitude
- 如果查询也很容易通过其他属性扩展到过滤服务,则加分 *
您可以在两个表中创建和索引 geography 列,然后您可以使用 ST_DWITHIN(),它使用索引
SELECT service.*
FROM service
JOIN customer
ON ST_DWITHIN(service.geog, customer.geom, service.radius)
WHERE customer.id=123
AND service.type='abc';
我是 PostGIS 的新手,正在寻找解决以下问题的合理方法的建议。我的服务具有 lat/lng 和服务半径(服务可用的区域)。我有一些客户只有 lat/lng。我想设置一个 table(s) 来支持索引查询 return 所有具有包含用户位置的服务区域的服务。
Service
- latitude
- longitude
- radius
- type
Customer
- latitude
- longitude
- 如果查询也很容易通过其他属性扩展到过滤服务,则加分 *
您可以在两个表中创建和索引 geography 列,然后您可以使用 ST_DWITHIN(),它使用索引
SELECT service.*
FROM service
JOIN customer
ON ST_DWITHIN(service.geog, customer.geom, service.radius)
WHERE customer.id=123
AND service.type='abc';