为什么 "circles" 在 PostGIS 中在地图上显示为 "ellipsis"?
Why "circles" in PostGIS appear as "ellipsis" on map?
我像这样在 PostGIS 数据库上创建圆形几何服务器端。
UPDATE element
SET geo = ST_Buffer(
ST_MakePoint(6.1043443253471, 42.3150676015829), 6, 'quad_segs=8')
WHERE id = 1;
然后我获取要发送到客户端浏览器上的 openlayers 的 WKT。
SELECT ST_AsText(geo) from element where id = 1
问题是圆在地图上显示为省略号,就像这里一样
这可能与投影有关,但我不明白如何在服务器端创建这个圆圈,使其在地图上显示为一个真实的圆圈。
你能帮我解决这个问题吗?
提前致谢。
是的,这是投影,因为经度与纬度的地面长度(以米为单位)不同。
也就是说,图片和示例代码不匹配,因为代码指示创建一个 6 度宽的缓冲区,即 +- 600 公里,并且该点位于地中海而不是后院(也许 X 和 Y 被调换了?)。
为了克服这个问题,您可以选择保留距离的本地 CRS,例如 UTM。
或者,您可以使用默认单位为米的地理创建缓冲区,然后转换回几何。
select ST_Buffer(
ST_MakePoint(6.1043443253471, 42.3150676015829)::geography,
6, 'quad_segs=8'
)::geometry
WHERE id = 1;
我像这样在 PostGIS 数据库上创建圆形几何服务器端。
UPDATE element
SET geo = ST_Buffer(
ST_MakePoint(6.1043443253471, 42.3150676015829), 6, 'quad_segs=8')
WHERE id = 1;
然后我获取要发送到客户端浏览器上的 openlayers 的 WKT。
SELECT ST_AsText(geo) from element where id = 1
问题是圆在地图上显示为省略号,就像这里一样
这可能与投影有关,但我不明白如何在服务器端创建这个圆圈,使其在地图上显示为一个真实的圆圈。
你能帮我解决这个问题吗? 提前致谢。
是的,这是投影,因为经度与纬度的地面长度(以米为单位)不同。
也就是说,图片和示例代码不匹配,因为代码指示创建一个 6 度宽的缓冲区,即 +- 600 公里,并且该点位于地中海而不是后院(也许 X 和 Y 被调换了?)。
为了克服这个问题,您可以选择保留距离的本地 CRS,例如 UTM。
或者,您可以使用默认单位为米的地理创建缓冲区,然后转换回几何。
select ST_Buffer(
ST_MakePoint(6.1043443253471, 42.3150676015829)::geography,
6, 'quad_segs=8'
)::geometry
WHERE id = 1;