Google maps 使用PostGIS围绕线串创建多边形
我是PostGIS新手,需要在这里寻求帮助。 我有一条来自谷歌地图的多段线(代表一个行程),需要在它周围构建一个多边形(缓冲区),以米或公里为单位指定距离 对于输入,我有纬度/经度点列表和所需的缓冲距离Google maps 使用PostGIS围绕线串创建多边形,google-maps,gis,postgis,Google Maps,Gis,Postgis,我是PostGIS新手,需要在这里寻求帮助。 我有一条来自谷歌地图的多段线(代表一个行程),需要在它周围构建一个多边形(缓冲区),以米或公里为单位指定距离 对于输入,我有纬度/经度点列表和所需的缓冲距离 有人能帮我建立查询,以便返回的结果是纬度/经度坐标的多边形,可以在地图上绘制吗?这不是使用PostGIS,但有一个类似于您所要求的 另一种选择:选择 在末端再次添加线字符串的第一个顶点,以便 创建多边形的步骤 将线字符串转换为多边形 围绕多边形创建缓冲区 选择 ST_缓冲区(ST_多边形(ST
有人能帮我建立查询,以便返回的结果是纬度/经度坐标的多边形,可以在地图上绘制吗?这不是使用PostGIS,但有一个类似于您所要求的 另一种选择:选择
选择
ST_缓冲区(ST_多边形(ST_添加点(the_geom,ST_StartPoint(the_geom))),100)
从…起
空白表
选择
ST_变换(ST_缓冲区(ST_变换(ST_多边形(ST_添加点,ST_起始点,XXXX)),4326),XXXX),100),4326)
从…起
空白表
我没有尝试过该代码,但它应该可以工作。对于lon/lat几何图形上的米缓冲区,您可以使用
地理
数据类型上的ST\u缓冲区。这种方法可以避免找到合适的投影。PostGIS实际上为此使用UTM分区
例如,geometry(ST_Buffer(geogaphy(geom),100))
返回几何体的100米缓冲多边形geom
所以,对于包含seq、lon和lat列的表,它看起来像:
SELECT geometry(ST_Buffer(georgaphy(ST_MakeLine(ST_MakePoint(lon, lat))), dist))
FROM sometable
ORDER BY seq
经过测试,我发现postgis生成的多边形缓冲区不可靠。也就是说,如果我想要一条多段线周围有一个5公里的缓冲区,postgis将返回一个多边形,该多边形最多为5公里,但在某些点小于5公里
放弃postgis你说得很对,这不是我想要的。我事先研究过使用RouteBox,它根本不适合我的需要。这是不正确的。以下是PostGIS在路线周围创建25英里缓冲区的示例:@Marcelo-您能提供如何实现这一点的代码吗?当我在一个测试提供程序上执行此操作时,缓冲区被扭曲。如果您已经说过要放弃PostGIS,为什么还要使用代码P(你已经接受了自己的答案,但这并不能解决问题)。StackOverflow不是这样工作的!关于此注释:对于地理位置而言,如果对象足够大,以至于它位于两个UTM区域之间或跨越日期线,则可能不会表现出预期的行为