我的传单 map 有问题,我想显示 SQL 查询,但它不起作用。我将结果放入 JS 变量中,如下所示:
<?php
$connect = connect();
$req_ch = "SELECT json_build_object(
'type', 'FeatureCollection',
'crs', json_build_object(
'type', 'name',
'properties', json_build_object(
'name', 'EPSG:4326')),
'features', json_agg(
json_build_object(
'type', 'Feature',
'geometry', ST_AsGeoJSON(geom)::json,
'properties', json_build_object(
'name', code_chambre,
'sro', zone_sro
)
)
)
) AS objet_geosjon FROM tvx_chambres;";
$result_ch = pg_query($connect, $req_ch);
$rs_ch = pg_fetch_array($result_ch);
$geo_ch = $rs_ch[0];
?>
var g_ch = <?php echo $geo_ch;?>;
然后我尝试使用以下查询显示它:
$.getJSON(g_ch, function(data) {
var geojson = L.geoJson(data, {
onEachFeature: function (feature, layer) {
layer.bindPopup(feature.properties.name);
}
});
var map = L.map().fitBounds(geojson.getBounds());
geojson.addTo(map);
});
我使用了console.log(g_ch)
,我在浏览器控制台上看到了我的geoJson,并且没有错误。
您知道我可以做些什么来解决我的问题吗?
最佳答案
如果 g_ch
已经是一个对象,则
$.getJSON(g_ch...
没有任何意义。$.getJSON
排除 URL 作为第一个参数,这样它就可以从服务器获取一些 JSON 数据 - 请参阅 https://api.jquery.com/jQuery.getJSON 了解这一点。
由于您已经将 JSON 作为对象文字回显到 g_ch
JavaScript 变量中,因此您可以直接在代码中使用此变量。我具体不知道 geoJson 函数,但我希望您需要执行类似的操作
var geojson = L.geojson(g_ch...
(当然,还要删除所有 $.getJSON 内容。)
关于javascript - 如何在传单 map 上显示SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60336723/