簡體   English   中英

傳單顯示從數據庫到地圖的所有標記

[英]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"],"     &nbsp     &nbsp    &nbsp    &nbsp    &nbsp      ",$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM