【问题标题】:Fetch places from POSTGIS从 POSTGIS 获取地点
【发布时间】:2017-02-05 19:47:19
【问题描述】:

我已从geonames 下载数据,然后按照以下链接将其转储到 POSTGIS。

https://github.com/colemanm/gazetteer/blob/master/docs/geonames_postgis_import.md

目前我不确定如何在两条路线之间找到位置。该表有 latitudelongitude 的单独列。

我需要在路线之间找到位置,有什么办法吗?

我已经尝试过什么

获取两点之间的位置:

SELECT * FROM geoname WHERE 
ST_DWithin('POINT(44.8781 -116.6298)', 
ST_GeographyFromText('POINT(43.7392 -114.9903)'), 16093.4);

我得到 0 个结果,尽管我确信这些点附近有地方。

我也试过了,

SELECT * FROM geoname WHERE 
ST_Distance_Sphere('POINT(44.8781 -116.6298)',     
ST_MakePoint(43.7392,-114.9903)) <= 16093.4;

是否可以使用pgRouting 来完成。可能类似于使用pgRouting 获取路线,然后获取沿path 的地点。

【问题讨论】:

    标签: postgresql postgis


    【解决方案1】:

    您是否没有看到错误消息“错误:地理类型的坐标值超出范围 [-180 -90, 180 90]”?

    将轴顺序从lat lon(或Y X)换成正确的轴顺序lon lat(或X Y em>)。如果您错误地使用以前的轴顺序创建了几何/地理对象,您可以使用 ST_FlipCoordinates 更新交换版本

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多