Php 来自mysql的geojson:转换postgresql';使用聚合函数json\U agg的s查询(用于web映射)

Php 来自mysql的geojson:转换postgresql';使用聚合函数json\U agg的s查询(用于web映射),php,mysql,json,geojson,aggregation,Php,Mysql,Json,Geojson,Aggregation,关于MySQL和GeoJSON聚合函数的一个问题: 我想根据本文末尾的提示将PostgreSQL查询转换为MySQL 5.7查询 或者使用postgresql中的等效方法为MySQL提供此解决方案: 我已经找到了MySQL 8.0的主要功能 要转换的查询以及本文末尾介绍的提示: SELECT JSON_OBJECT( 'type', 'FeatureCollection', 'crs', JSON_OBJECT( 'type', 'name',

关于MySQL和GeoJSON聚合函数的一个问题:

我想根据本文末尾的提示将PostgreSQL查询转换为MySQL 5.7查询

或者使用postgresql中的等效方法为MySQL提供此解决方案:

我已经找到了MySQL 8.0的主要功能

要转换的查询以及本文末尾介绍的提示:

SELECT JSON_OBJECT(
    'type', 'FeatureCollection',
    'crs',  JSON_OBJECT(
        'type',      'name',
        'properties', JSON_OBJECT(
        'name', 'EPSG:4326')),
    'features', **JSON_OBJECTAGG**(
        JSON_OBJECT(
            'type',       'Feature',
            'id',         site.id_site,
            'geometry',    ST_AsGeoJSON(the_geom),
            'properties', JSON_OBJECT(
            'name', 'name',
            'espece', espece_name,
            'pseudo', pseudo
            )
        )
    )
) AS objet_geosjon FROM site, catch, fish, espece, hunting_party WHERE site.id_site = catch.id_site AND catch.id_fish = fish.id_fish AND fish.id_espece = fish.id_espece AND catch.id_hunting_party = hunting_party.id_hunting_party;
geojson中所需的结构: {“类型”:“特征集合”,“crs”:{“类型”:“名称”,“属性”:{“名称”:“EPSG:4326”},“特征”:{“类型”:“特征”,“id”:1,“几何体”:{“类型”:“点”,“坐标”:[-4.59004219507089,48.559968224588]},“属性”:{“名称”:“名称”,“特殊”:“dorade royale”,“伪”:“Fred”},{“类型”:“特征”,“id”:2,“几何体”:{“类型”:“点”,“坐标”:[-4.5891116804469,48.559135011761]},“属性”:{“名称”:“名称”,“特殊”:“dorade royale”,“伪”:“Fred”},{“类型”:“特征”,“id”:4,“几何”:{“类型”:“点”,“坐标”:[-4.58834537428597,48.5601855821988]},“属性”:{“名称”:“名称”,“特殊”:“Congree”,“伪”:“Fred”},{“类型”:“特征”,“id”:3,“几何体”:{“类型”:“点”,“坐标”:[-4.5864296088365,48.5594972798939]},“属性”:{“名称”:“名称”,“特殊”:“dorade royale”,“伪”:“Joe”}},{“类型”:“特征”,“id”:5,“几何体”:{“类型”:“点”,“坐标”:[-4.58708644273588,48.5570338054289]},“属性”:{“名称”:“名称”,“特殊”:”唯一公社“,”伪“:”乔“},{”类型“,”特征“,”id“:6,”几何“,{”类型“:”点“,”坐标“:[-4.5890022081382,48.5594610531973],”属性“:{”名称“,”名称“,”特殊“:”国会“,”伪“:”弗雷德“}}”

多谢各位

我在php中找到了一种方法:

<?php include("connection_db_mysql.php");if($dbconn){/*Build SQL SELECT statement and return the geometry as a GeoJSON element*/ $sql =
SELECT espece_name as espece, pseudo,  ST_ASGEOJSON(the_geom) AS geojson FROM site,  catch, fish, espece, hunting_party WHERE site.id_site = catch.id_site AND catch.id_fish = fish.id_fish AND fish.id_espece = espece.id_espece AND catch.id_hunting_party = hunting_party.id_hunting_party;';

# Try query or error
$rs = $dbconn->query($sql);
if (!$rs) {
    echo 'An SQL error occured.\n';
    exit;
}



$prop = array('name' =>  'EPSG:4326' );
//$crs = array('type' => 'name' , 'properties' => json_encode($prop, JSON_HEX_QUOT)); 
//$crs = array('type' => 'name' , 'properties' =>  htmlspecialchars(json_encode($prop), ENT_QUOTES, 'UTF-8'));
# Build GeoJSON feature collection array
$geojson = array(
   'type'      => 'FeatureCollection',
   'crs'    => 'to_replace',
   // 'crs' => htmlspecialchars(json_encode($crs), ENT_QUOTES, 'UTF-8'),
   'features'  => array()
);
//


//'{"type" : "name", "properties" : {"name" : "EPSG:4326"}}'

//array_push($crs['properties'], $prop);
//array_push($objet_geojson['crs'], $crs);
$i=1;
# Loop through rows to build feature arrays
while ($row = $rs->fetch(PDO::FETCH_ASSOC)) {
    $properties = $row;
    # Remove geojson and geometry fields from properties
    unset($properties['geojson']);
    unset($properties['the_geom']);
    $feature = array(
         'type' => 'Feature',
         'id' => $i,
         'geometry' => json_decode($row['geojson'], true),
         'properties' => $properties
    );
    $i++;
    # Add feature arrays to feature collection array
    array_push($geojson['features'], $feature);
}
$objet_geojson=str_replace('"to_replace"','{"type" : "name", "properties" : {"name" : "EPSG:4326"}}', json_encode($geojson))}