2016-02-14 20 views
1

我有一些存储在sqlite数据库中的坐标。我需要这些坐标用于传单上的热图。 我使用以下插件:https://github.com/Leaflet/Leaflet.heat转换来自sqlite的数据PHP

的数据需要在以下格式:

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" 

怎么能我以正确的方式获取插入'var addressPoints'的SQLite数据?

Thansk提前,

JWB

+0

SQLite DB中'coord'的列类型是什么? – IvanSanchez

回答

0

如果数据遵循与在开始和结束并且在对之间的双引号引号相同的格式下面的应当产生的阵列与一对作为一个条目。

$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};"; 
+0

谢谢。这表明我朝着正确的方向前进。 Ik现在开始工作。 – user1698459

+0

嗨,我一直在玩它,并在一个PHP文件中使用它时,它使用var addressPoints = <?php echo“[{$ json}]”;?>; – user1698459