0

嗨 Stackoverflow 人,

我正在做一个组织注册,组织可以在其中注册他们的项目区域(如所有内华达州、整个美国,或者只是一个城市,例如波士顿),用户应该根据他们的 lat & lng 找到该组织所涵盖的所有组织。

将组织信息与用户搜索联系起来的最佳方式是什么?

以下流程是否可以,或者您有什么建议:

  1. 我在我的 postgis 数据库中加载所有必要的州、县等的 shapefile
  2. 如果一个组织将“纽约州”添加到他们的覆盖区域,我会查找该州的多边形形状(或形状的 id)并将其保存在我的覆盖表中
  3. 当我搜索组织覆盖范围时,我会找到用户 lat & lng 所属的所有项目

上述过程是否可以将用户信息连接到 shapefile 信息?

如何在形状文件中查找多边形?我可以用 ID 引用它们吗?

查找如何与城市一起工作,因为大多数带有城市名称、lat、lng 的列表只列出城市的中心点?或者是否有一个连城市边界的表格?

感谢您的帮助和建议!

4

1 回答 1

1

当您使用 shp2pgsql 将 shp 文件导入到 postgis 时所有其他列(州名、城市名等)也会被导入,因此您可以按名称或 shp 文件具有的任何其他属性搜索,也可以按几何搜索,如果您有一个点并且您想搜索该点附近的多边形或点(在您的情况下为城市),则对数据库的查询非常简单:

SELECT * from myTable where ST_DWithin(users_point, the_geom, 0.002);

// ST_DWithin的距离单位是几何单位。

PS shp2pgsql 自动创建一个串行列(唯一 id)

于 2012-02-07T01:35:35.310 回答