我正在尝试使用db mysql显示标记。数据未显示。
http://www.nexusmultimedia.it/gis7.html
<script>
var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png',
cloudmadeAttribution = 'Map data © 2011 OpenStreetMap contributors, Imagery © 2011 CloudMade, Points © 2012 LINZ',
cloudmade = L.tileLayer(cloudmadeUrl, {maxZoom: 17, attribution: cloudmadeAttribution}),
latlng = L.latLng(45.4404,12.3768);
var map = L.map('map', {center: latlng, zoom: 11, layers: [cloudmade]});
var markers = L.markerClusterGroup();
function getUsers() {
$.getJSON("get_info.php", function (data) {
for (var i = 0; i < data.length; i++) {
var location = new L.LatLng(data[i].lat, data[i].lng);
// var
var name = data[i].nome;
var marker = new L.Marker(location);
marker.bindPopup("<div style='text-align: center; margin- left: auto; margin-right: auto;'>"+ name +"</div>",
{
maxWidth: '400'
});
users.addLayer(marker);
}
})
};
</script>
来自www.nexusmultimedia.it/get_info.php我可以看到:
[{"cf_id":"1","nome":"Cofano","lat":"45.475281","lng":"12.26436"}]
浏览器镶边没有错误,但没有显示标记。有什么想法吗?
由于
尼古拉
答案 0 :(得分:0)
似乎有两个问题。首先,似乎服务器的响应无效,因为它没有使用正确的标头(Application / JSON)发回。我看到的响应只是PHP文件的内容:
<?php
$db = new PDO('mysql:host=62.149.150.181;dbname=##your db name omitted##', '##omitted##', '##omitted##');
$sql = "SELECT cf_id, nome, lat, lng FROM form_data_MIT;";
$rs = $db->query($sql);
if (!$rs) {
echo "SQL error\n";
exit;
}
$rows = array();
while($r = $rs->fetch(PDO::FETCH_ASSOC)) {
$rows[] = $r;
}
print json_encode($rows);
$db = NULL;
?>
其次,您没有在控制台中收到任何错误,因为您要将标记添加到不存在的图层 - users
。我认为您打算将每个标记添加到图层markers
。
希望有所帮助!