我在sqlite数据库中存储了许多坐标。我需要将这些坐标用于传单上的热图。我正在使用以下插件:https://github.com/Leaflet/Leaflet.heat
数据需要采用以下格式:
var addressPoints = [
[52.344161, 4.912279],
[52.342425, 4.913038],
[52.342034, 4.913256],
[52.341987, 4.912462]];
我使用以下方法从 PHP 中的 sqlite 数据库中提取数据:
$db = new SQLite3('jwtrack.sqlite');
$results = $db->query("SELECT coord FROM trackjw");
while ($row = $results->fetchArray()) {
echo json_encode($row['coord']);
}
$db->close();
检索的数据如下所示:
"52.344161000, 4.912279000""52.342425000, 4.913038200""52.342034000, 4.913256000""52.341987000, 4.912462000""52.342336000, 4.912106000"
如何以正确的方式将SQLite数据插入到"var addressPoints"中?
提前感谢斯克,
智威
如果数据遵循相同的格式,开头和结尾的引号以及对之间的双引号,则以下内容应生成一个以该对作为条目的数组。
$data='"52.344161000, 4.912279000""52.342425000, 4.913038200""52.342034000, 4.913256000""52.341987000, 4.912462000""52.342336000, 4.912106000"';
$pairs=explode('""',trim($data,'"'));
print_r($pairs);
输出:
Array
(
[0] => 52.344161000, 4.912279000
[1] => 52.342425000, 4.913038200
[2] => 52.342034000, 4.913256000
[3] => 52.341987000, 4.912462000
[4] => 52.342336000, 4.912106000
)
但是,您可以更改初始php,这将产生不同的数据
$db = new SQLite3('jwtrack.sqlite');
$results = $db->query("SELECT coord FROM trackjw");
$json=array();
while( $row = $results->fetchArray() ) {
$json[]=$row['coord'];
}
$db->close();
$json=json_encode( $json );
echo $json;
如果您需要这个而没有值周围的引号......
$json=str_replace('"','',$json);
在 JavaScript 中,您可以执行以下操作:
echo "var addressPoints={$json};";