相关疑难解决方法(0)

PostGIS - 路线匹配解决方案

我们正在建立一个应用程序,我是一名司机,我从A点到B点旅行.在我的路上,我可以找到以相同路线旅行的乘客.

我们正在使用PostgreSQL和PostGIS扩展.

经过谷歌搜索后,我发现我们可以使用线串来实现这一点.我不完全确定这种方法是否会成功.

假设我有源和目的地的坐标.

    var RouteCoordinates = [
      {lat: 37.772, lng: -122.214},
      {lat: 21.291, lng: -157.821},
      {lat: -18.142, lng: 178.431},
      {lat: -27.467, lng: 153.027}
    ];
Run Code Online (Sandbox Code Playgroud)

我需要将其存储为我的数据库中的线串.

如果一名乘客也在这条路线上行驶,但我们知道他的来源和目的地不会完全在我的线路中,但他们会在附近.例如,半径约1km

在此输入图像描述

正如您所看到的那样,我的源和目的地就是那条线.当我旅行时,我想挑选所有那些(源和目的地)靠近我的路线(在特定半径范围内)的人

如果我想在特定半径范围内找到我的数据库中的特定位置,我将会这样查询

SELECT id, name, address, geom  
FROM Seattle_Starbucks  
WHERE ST_DWithin(geom, ST_MakePoint(-122.325959,47.625138)::geography, 1000);
Run Code Online (Sandbox Code Playgroud)

现在我可以实现我的解决方案,因为我刚接触postGIS有点令人困惑

  1. 如何在DB中存储我的所有源和目标点

ANS:我需要使用此函数ST_MakeLine转换为linestring,然后存储,对吧?

  1. 如上所述,如何根据我的要求查询

能否请您告诉我如何实现这一目标.非常感谢您的帮助.谢谢

postgresql postgis elixir geo ecto

8
推荐指数
1
解决办法
575
查看次数

如何在postgis中创建一个以米为单位的圆圈?

我想问一下如何创建一个圆圈radius=4km.我尝试了这个ST_Buffer功能,但它创建了一个更大的圆圈.(我通过将其多边形插入到新的kml文件中来查看创建的圆圈.)

这就是我想要的.

INSERT INTO camera(geom_circle) VALUES(geometry(ST_Buffer(georgaphy(ST_GeomFromText('POINT(21.304116745663165 38.68607570952619)')), 4000)))
Run Code Online (Sandbox Code Playgroud)

圆的中心是一个lon lat点,但我不知道它,SRID因为我从kml文件中导入了它.我是否需要SRID改变几何形状等?

geometry postgis srid

6
推荐指数
1
解决办法
1万
查看次数

带有覆盖世界的六边形网格坐标的表格

在 PostGIS 中寻找一个实现来生成覆盖整个地球的六边形网格,以便聚合每个六边形上的数据。

任何指向正确方向的指针都会有很大帮助!

最终产品: - 一张表格,其中包含覆盖整个世界的六边形网格中每个六边形的中心点。- 六边形有固定面积

postgresql geometry postgis geolocation

4
推荐指数
1
解决办法
1517
查看次数

从纬度和经度对计算边界框

谷歌返回当前的纬度和经度,但计算左下纬度和经度以及右上纬度和经度。我一直无法弄清楚它是如何计算的。

有谁知道它是否是静态距离?百分比差异?它是如何计算的?

伊利诺伊州芝加哥

current lat 41.8781136
current lon -87.6297982 
lower left lat  40.3781136
lower left lon  -89.8743648   
upper right lat 43.3781136
upper right lon -85.3852316
Run Code Online (Sandbox Code Playgroud)

纽约

current lat 40.7127753
current lon -74.0059728
lower left lat  39.2127753
lower left lon  -76.26396172
upper right lat 42.2127753
upper right lon -71.74798388
Run Code Online (Sandbox Code Playgroud)

更新:

知道它从中心到左侧和右侧是 103.5 英里,并且知道它从中心到顶部和底部边界是 103.5 英里。

使用当前的经纬度点,如何计算左下角和右上角的点?

我假设 PostGIS 有这个功能?

sql gis postgresql google-maps postgis

1
推荐指数
1
解决办法
1097
查看次数

标签 统计

postgis ×4

postgresql ×3

geometry ×2

ecto ×1

elixir ×1

geo ×1

geolocation ×1

gis ×1

google-maps ×1

sql ×1

srid ×1