我从json API中获取显示为多边形的区域的数据。可以在此处找到端点示例:
这是我从以下位置获取数据的平台上显示的多边形的预览:
下面是包含多边形坐标的元素的片段。
"the_geom": {
"coordinates": [
[
[
543271.0,
6213477.0
],
[
543553.0,
6213471.0
],
[
543556.0,
6213013.0
],
[
543287.0,
6213008.0
],
[
543271.0,
6213477.0
]
]
],
"type": "Polygon"
},
"the_geom2": {
"coordinates": [
543416.1695806364,
6213244.042039478
],
"type": "Point"
},
我想在网站上的嵌入式Google地图中显示多边形。我目前正在使用PHP将坐标导入内容管理系统。
问题是,据我了解,“ the_geom”元素的坐标是PostGIS数据库中的坐标。
我想将坐标转换为纬度和经度,以显示在Google地图上。
有可能吗?如果是,那么流程将是什么?
答案 0 :(得分:2)
通常,当几何图形不包含有关SRS的任何信息时,我们可以假定它是EPSG:4326
(又名WGS84),显然不是这种情况。另外,如果我没记错的话,可以使用GeoJSON几何only intend to be encoded as WGS84。因此,我敢说这个API没有提供正确的信息。
话虽如此,如果您可以访问PostgreSQL,请考虑使用UPDATE语句中的ST_Transform
将几何转换为所需的SRS或在查询时对其进行转换。
考虑到您几何的SRS为EPSG:23032
(ED50 / UTM区域32N)
SELECT ST_AsGeoJSON(ST_Transform(the_geom),4326)) As wkt;
哪个会给您以下结果(考虑您的GeoJSON几何形状)..
{
"type": "Polygon",
"coordinates": [
[
[
9.69359591513313,
56.0626693979362
],
[
9.6981234775552,
56.062589963491
],
[
9.69809730445666,
56.0584749528625
],
[
9.69377718993567,
56.0584543863193
],
[
9.69359591513313,
56.0626693979362
]
]
]
}
..并对应于..
我对Google Maps不太熟悉,但是如果它只期望EPSG:4326
几何形状,则需要在传递GeoJSON几何形状之前对其进行转换(例如,使用JavaScript)。如果Google Maps足够灵活以接受其他SRS,请确保您明确声明几何SRS-在这种情况下很可能是EPSG:23032
。
祝你好运!