[英]Leaflet Show all Markers from Database to Map
首先,我想在問我的問題之前演示我的代碼。
下面的代碼將顯示我從數據庫到網頁的所有數據
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dbmarker";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * from tblmarker";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<br>",$row["lat"],"           ",$row["lng"] ;
}
} else {
echo "0 results";
}
$conn->close();
?>
這是我的代碼的輸出,將顯示所有緯度/經度
14.704659335030026 121.02397441864012
14.704659335030026 121.02397441864012
14.704659335030026 121.02397441864012
14.704659335030026 121.02397441864012
14.704659335030026 121.02397441864012
14.704659335030026 121.02397441864012
14.704659335030026 121.02397441864012
14.704659335030026 121.02397441864012
14.704659335030026 121.02397441864012
我的問題是如何在此代碼中連接此輸出?
var note = document.getElementById('note');
var datepick = document.getElementById('demo1');
var timepick = document.getElementById('timepick');
layerpoly.on('click', function(e){
var markerA = new L.Marker(e.latlng,{icon: Icon1});
markerA.bindPopup("</a><br><strong>FIRE</strong></br><strong>Date:</strong>"+datepick.value+"</br><strong>Time:</strong>"+timepick.value+"</br><strong>Address:</strong>"+note.value+"<strong><br><strong>Suspect Sketch</strong><br><a href=legends/suspect.jpg rel=lightbox><img src = legends/suspect.jpg height=100 width = 100/>").addTo(map);
closure1 (markerA)
還是為了簡化我的問題,我如何獲取這些輸出並將其轉換為我的標記的經度/緯度? 將會發生的事情是,當網頁加載完成時,獲取經緯度並在地圖上放置一個標記。 TY
您可以在php數據中創建示例數組:
$data = array();
echo " var latlong = [ " ;
for ( $x = 0; $x < mysql_num_rows( $query); $x++) {
$data[] = mysql_fetch_assoc( $query);
echo " [ " , $data[ $x][ 'lat' ], " , " , $data[ $x][ 'long' ], " ] " ;
if ( $x <= ( mysql_num_rows( $query) - 2) ) {
echo " , " ;
}
}
echo " ]; " ;
調整為您的字段的這段代碼創建了var latlong,並且在您的情況下獲得了以下輸出:
latlong = [
[14.704659335030026,121.02397441864012],
[14.704659335030026,121.02397441864012],
[14.704659335030026,121.02397441864012],
[14.704659335030026,121.02397441864012],
[14.704659335030026,121.02397441864012],
[14.704659335030026,121.02397441864012],
[14.704659335030026,121.02397441864012],
[14.704659335030026,121.02397441864012],
[14.704659335030026,121.02397441864012]];
然后,您只需將php添加到地圖頁面中,如下所示:
<?php include 'latlong.php' ?>
以及要顯示的點的功能,例如:
for ( var i = 0; i < latlong.length; i ++) {
marker = new L.marker([latlong[i][ 1 ],latlong[i][ 2]])
.addTo(map);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.