【问题标题】:How to find the nearest point in POSTGIS?如何在 POSTGIS 中找到最近的点?
【发布时间】:2012-08-05 18:56:48
【问题描述】:

表A:

    lat | long | the_geom | code | sign 
    13.8433095 | 100.6360357 | 0101000020E61.... | ABC | start_point
    13.7544738 | 100.5459646 | 0101000020E6..... | ABC | end_point
    13.4124215 | 100.6232332 | 0101000020E61.... | DEF | start_point
    13.2423438 | 100.2324426 | 0101000020E6..... | DEF | end_point

表 B:

lat | long | the_geom | code    
13.7546285 | 100.5458729 | 0101000020E.... | ABC    
13.7546698 | 100.5458513 | 0101000020E.... | ABC
13.7547107 | 100.5458233 | 0101000020E.... | DEF    
...

我想找到每个点的最近点(开始和结束点)与表 B 中具有相同代码的每个点进行比较?

解决这个问题的最佳 PostGIS 函数/PostgreSQL 查询是什么?

【问题讨论】:

    标签: postgresql geometry postgis


    【解决方案1】:

    如果您使用的是最新版本的软件,您可以使用 KNN-GiST 技术快速找到 PostGIS 中某个点的 K 个最近邻。 K 的小值是最快的,而 1 与它们一样小,所以这对你来说应该很好。我只将 KNN-GiST 与文本三元组一起使用,但我知道它们也可以与 PostGIS 一起使用——我只是不知道开始使用它的最佳页面。对“postgis knn gist”的网络搜索显示了许多可能的候选人。

    【讨论】:

      【解决方案2】:

      经过很长时间的问题,我刚刚找到了“最近邻居”的解决方案 http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgis_nearest_neighbor_generic

      【讨论】:

        猜你喜欢
        • 2012-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-02
        相关资源
        最近更新 更多