2016-02-14 52 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