Javascript Php-将MySQL结果作为geojson进行回显

Javascript Php-将MySQL结果作为geojson进行回显,javascript,php,mysql,leaflet,geojson,Javascript,Php,Mysql,Leaflet,Geojson,我在MySQL数据库中有一个表,它有一个几何字段(多边形) 现在,我可以查询geometry字段并获得如下geojson: SELECT ST_AsGeoJSON(b.shape) FROM `tbl_polygon` as b where ST_Intersects(b.shape, ST_GeomFromText('Polygon((28.0921 -26.11351,28.09210 -26.11288,28.0929502 -26.1128831,28.092950 -26.113510

我在MySQL数据库中有一个表,它有一个几何字段(多边形)

现在,我可以查询geometry字段并获得如下geojson:

SELECT ST_AsGeoJSON(b.shape) FROM `tbl_polygon` as b where ST_Intersects(b.shape, ST_GeomFromText('Polygon((28.0921 -26.11351,28.09210 -26.11288,28.0929502 -26.1128831,28.092950 -26.113510,28.0921027 -26.113510))',1))
在MySQL中,我得到了一个geojson:

{"type": "Polygon", "coordinates": [[[28.092521118...
现在这里是我被卡住的地方,我有一张JS地图,想把这个geojson显示为图层

那么,如何从外部php文件中回显geojson,以便将geojson输入javascript并使用传单的L.geojson添加层呢

我不确定这样做是否有效。 任何建议都很好。 谢谢

基于Majid Abbasi的伟大回答(谢谢)。我试过了,但很明显我遗漏了一些东西,我只得到了一个没有错误的空白页。谢谢你,马吉德。 以下是我的index.php文件中的代码:

Index.php

<?php
require_once(conn.php);
$myquery = "SELECT ST_AsGeoJSON(b.shape) FROM `tbl_polygon` as b where ST_Intersects(b.shape, ST_GeomFromText('Polygon((28.092102706432343 -26.113510096462498,28.092102706432343 -26.11288390575381,28.092950284481045 -26.11288390575381,28.092950284481045 -26.113510096462498,28.092102706432343 -26.113510096462498))',1))";

$result = mysqli_query($connect, $myquery);?>

您需要像这样在PHP文件中定义一个JavaScript变量,并调用initializeMap函数来创建映射并将数据传递给该映射:

<?php
require_once(conn.php);
$myquery = "SELECT ST_AsGeoJSON(b.shape) as jsonData FROM `tbl_polygon` as b where ST_Intersects(b.shape, ST_GeomFromText('Polygon((28.092102706432343 -26.113510096462498,28.092102706432343 -26.11288390575381,28.092950284481045 -26.11288390575381,28.092950284481045 -26.113510096462498,28.092102706432343 -26.113510096462498))',1))";

$result = mysqli_query($connect, $myquery);
$data = mysqli_fetch_fields(result);
$ST_AsGeoJSON = $data->jsonData;
?>
<script language="javascript">
    var data = <?php echo $ST_AsGeoJSON; ?>;
</script>
var mymap = L.map('mapid').setView([28.092102706432343, -26.113510096462498], 13); 

L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
    '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
    'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'mapbox.streets'
}).addTo(mymap); 
ployLayer = L.geoJson(data).addTo(map);

谢谢你,马吉德,这可能适合我。我试图实现它,但我得到了一些问题,如果你有时间,请你看看我对我的问题所做的编辑。再次感谢汉克斯,这太棒了。再次感谢
<?php
require_once(conn.php);
$myquery = "SELECT ST_AsGeoJSON(b.shape) as jsonData FROM `tbl_polygon` as b where ST_Intersects(b.shape, ST_GeomFromText('Polygon((28.092102706432343 -26.113510096462498,28.092102706432343 -26.11288390575381,28.092950284481045 -26.11288390575381,28.092950284481045 -26.113510096462498,28.092102706432343 -26.113510096462498))',1))";

$result = mysqli_query($connect, $myquery);
$data = mysqli_fetch_fields(result);
$ST_AsGeoJSON = $data->jsonData;
?>
<script language="javascript">
    var data = <?php echo $ST_AsGeoJSON; ?>;
</script>
var mymap = L.map('mapid').setView([28.092102706432343, -26.113510096462498], 13); 

L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
    '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
    'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'mapbox.streets'
}).addTo(mymap); 
ployLayer = L.geoJson(data).addTo(map);