Leaflet 传单从MYSQL数据构建多边形

Leaflet 传单从MYSQL数据构建多边形,leaflet,Leaflet,晚上好,我试图用MYSQL数据库中的select中的一些数据构建一个多边形,结果是我没有看到多边形,而是看到了点。 如果我手动输入坐标,它通过构建多边形来工作,如果我使用选择的变量,db仅显示与坐标对应的点。 我希望我是清楚的(我附上代码) $sql=“从'dati'中选择'LAT','LONG',其中'AREA'类似于'%001%'”; $result=$conn->query($sql);//而($r=mysqli\u fetch\u数组($q)) 如果($result->num_rows>

晚上好,我试图用MYSQL数据库中的select中的一些数据构建一个多边形,结果是我没有看到多边形,而是看到了点。 如果我手动输入坐标,它通过构建多边形来工作,如果我使用选择的变量,db仅显示与坐标对应的点。 我希望我是清楚的(我附上代码)

$sql=“从'dati'中选择'LAT','LONG',其中'AREA'类似于'%001%'”;
$result=$conn->query($sql);//而($r=mysqli\u fetch\u数组($q))
如果($result->num_rows>0){
//每行的输出数据
而($row=$result->fetch_assoc()){
//创建板条对象
变量latlngs=[[,]];
//创建多边形
var polygon=L.polygon(latlngs,{color:'red'});
//添加到要映射的多边形
polygon.addTo(map);


多边形是点的数组。在代码中,多边形由一个点创建

您应该构建有效的传单多边形字符串,如下所示

$polygonData = [];
while($row = $result->fetch_assoc()) {
  $polygonData[] = sprintf('[%s, %s]', $row["LAT"], $row["LONG"])
}
$polygonData = sprintf('[%s]', implode(',', $polygonData))
或者以其他方式生成这样的字符串格式

[[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]]
然后是超时周期

var latlngs =  <?php echo $polygonData ?>
var polygon = L.polygon(latlngs, {color: 'red'});
polygon.addTo(map);
var latlngs=
var polygon=L.polygon(latlngs,{color:'red'});
polygon.addTo(map);

每个多边形的点都不是按SQL顺序查询出来的。请看MySQL空间。谢谢。谢谢。我照你说的做了,而且很好。谢谢。现在我必须明白你对我说了什么。
var latlngs =  <?php echo $polygonData ?>
var polygon = L.polygon(latlngs, {color: 'red'});
polygon.addTo(map);