postgis 上的几何多边形到经纬度
Geometry polygon to lat long on postgis
我需要将 potsgres 几何数据类型转换为经纬度。
这是我的table
geom 列存储坐标,但它们不是人类可读的。
我只是想不通如何获得构成多边形的每个点。
几何数据类型 https://postgis.net/docs/reference.html#Geometry_Outputs
有一些输出选项。
我需要很长的每个点,因为我必须在此代码中使用它们来定义和渲染 google 地图上的多边形
$coords = [
new LatLng(['lat' => 25.774252, 'lng' => -80.190262]),
new LatLng(['lat' => 18.466465, 'lng' => -66.118292]),
new LatLng(['lat' => 32.321384, 'lng' => -64.75737]),
];
$polygon = new Polygon([
'paths' => $coords
]);
问题是我无法长时间访问以定义构成多边形的点。
我正在使用 YII2、yii2-google-maps 扩展、PostGis Postgress。
用于在 WKT use the function ST_AsText 中显示几何:
SELECT ST_AsText(geom) FROM colonias
如果您更喜欢 GeoJSON or GML,请使用以下功能:
SELECT ST_AsGeoJSON(geom) FROM colonias;
SELECT ST_AsGML(geom) FROM colonias
SELECT ST_X(geom),ST_Y(geom) FROM colonias
考虑到您的几何不是点,您必须首先使用 ST_DumpPoints an then parse them as described above. A straightforward way to do so is using CTE(又名 WITH 子句)提取点。
示例:
WITH j AS (
SELECT (ST_DumpPoints(ST_GeomFromText('POLYGON (( 2 0, 2 3, 0 2, 2 0 ))'))).geom AS point
) SELECT ST_X(j.point), ST_Y(j.point) FROM j;
我需要将 potsgres 几何数据类型转换为经纬度。
这是我的table
geom 列存储坐标,但它们不是人类可读的。
我只是想不通如何获得构成多边形的每个点。
几何数据类型 https://postgis.net/docs/reference.html#Geometry_Outputs
有一些输出选项。
我需要很长的每个点,因为我必须在此代码中使用它们来定义和渲染 google 地图上的多边形
$coords = [
new LatLng(['lat' => 25.774252, 'lng' => -80.190262]),
new LatLng(['lat' => 18.466465, 'lng' => -66.118292]),
new LatLng(['lat' => 32.321384, 'lng' => -64.75737]),
];
$polygon = new Polygon([
'paths' => $coords
]);
问题是我无法长时间访问以定义构成多边形的点。
我正在使用 YII2、yii2-google-maps 扩展、PostGis Postgress。
用于在 WKT use the function ST_AsText 中显示几何:
SELECT ST_AsText(geom) FROM colonias
如果您更喜欢 GeoJSON or GML,请使用以下功能:
SELECT ST_AsGeoJSON(geom) FROM colonias;
SELECT ST_AsGML(geom) FROM colonias
SELECT ST_X(geom),ST_Y(geom) FROM colonias
考虑到您的几何不是点,您必须首先使用 ST_DumpPoints an then parse them as described above. A straightforward way to do so is using CTE(又名 WITH 子句)提取点。
示例:
WITH j AS (
SELECT (ST_DumpPoints(ST_GeomFromText('POLYGON (( 2 0, 2 3, 0 2, 2 0 ))'))).geom AS point
) SELECT ST_X(j.point), ST_Y(j.point) FROM j;